Merge "Add @since tags to WikiRevision"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 25 Mar 2017 01:14:17 +0000 (01:14 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 25 Mar 2017 01:14:17 +0000 (01:14 +0000)
77 files changed:
CREDITS
RELEASE-NOTES-1.29
composer.json
docs/hooks.txt
includes/DefaultSettings.php
includes/Revision.php
includes/WatchedItemStore.php
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/libs/rdbms/database/Database.php
includes/page/ImageHistoryPseudoPager.php
includes/resourceloader/ResourceLoaderImage.php
includes/resourceloader/ResourceLoaderJqueryMsgModule.php
includes/resourceloader/ResourceLoaderOOUIImageModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/QueryPage.php
includes/specialpage/WantedQueryPage.php
includes/specials/SpecialAllMessages.php
includes/tidy/RemexCompatMunger.php
includes/upload/UploadFromUrl.php
languages/classes/LanguageAz.php
languages/classes/LanguageKk.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/ast.json
languages/i18n/atj.json [new file with mode: 0644]
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/fa.json
languages/i18n/fr.json
languages/i18n/frr.json
languages/i18n/fy.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hu.json
languages/i18n/km.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/mg.json
languages/i18n/mhr.json
languages/i18n/mk.json
languages/i18n/mr.json
languages/i18n/nan.json
languages/i18n/nb.json
languages/i18n/pl.json
languages/i18n/qqq.json
languages/i18n/sl.json
languages/i18n/su.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
resources/Resources.php
resources/src/jquery/jquery.qunit.completenessTest.js [deleted file]
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.CapsuleItemWidget.monobook.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesListWrapperWidget.less
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.Overlay.monobook.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.CapsuleItemWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
resources/src/mediawiki.skinning/content.parsoid.less
resources/src/mediawiki/mediawiki.jqueryMsg.js
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/api/ApiMainTest.php
tests/phpunit/includes/password/UserPasswordPolicyTest.php
tests/phpunit/includes/rcfeed/RCFeedIntegrationTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderWikiModuleTest.php
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js

diff --git a/CREDITS b/CREDITS
index 6a51e08..80d4e0e 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -434,6 +434,7 @@ The following list can be found parsed under Special:Version/Credits -->
 * MrBlueSky
 * MrPete
 * Mukunda Modell
+* MusikAnimal
 * Mwalker
 * mwjames
 * mybugs.mail
index 2380e9f..bd75eb7 100644 (file)
@@ -69,6 +69,7 @@ production.
 * Updated psr/log from v1.0.0 to v1.0.2.
 * Update Moment.js from v2.8.4 to v2.15.0.
 * Updated oyejorge/less.php from v1.7.0.10 to v1.7.0.13.
+* Added wikimedia/remex-html v1.0.1.
 
 ==== New external libraries ====
 
index df699bc..cd8f310 100644 (file)
@@ -38,7 +38,7 @@
                "wikimedia/ip-set": "1.1.0",
                "wikimedia/php-session-serializer": "1.0.4",
                "wikimedia/relpath": "1.0.3",
-               "wikimedia/remex-html": "1.0.0",
+               "wikimedia/remex-html": "1.0.1",
                "wikimedia/running-stat": "1.1.0",
                "wikimedia/scoped-callback": "1.0.0",
                "wikimedia/utfnormal": "1.1.0",
index f307f45..3a57563 100644 (file)
@@ -1018,7 +1018,8 @@ RecentChangesLinked, and Watchlist).  Generally, you will want to construct
 new ChangesListBooleanFilter or ChangesListStringOptionsFilter objects.
 
 When constructing them, you specify which group they belong to.  You can reuse
-existing groups (accessed through $special->getFilterGroup), or create your own.
+existing groups (accessed through $special->getFilterGroup), or create your own
+(ChangesListBooleanFilterGroup or ChangesListStringOptionsFilterGroup).
 If you create new groups, you must register them with $special->registerFilterGroup.
 $special: ChangesListSpecialPage instance
 
@@ -2702,6 +2703,13 @@ variables from $wgResourceLoaderLESSVars are added. Can be used to add
 context-based variables.
 &$lessVars: array of variables already added
 
+'ResourceLoaderJqueryMsgModuleMagicWords': Called in
+ResourceLoaderJqueryMsgModule to allow adding magic words for jQueryMsg.
+The value should be a string, and they can depend only on the
+ResourceLoaderContext.
+$context: ResourceLoaderContext
+&$magicWords: Associative array mapping all-caps magic word to a string value
+
 'ResourceLoaderRegisterModules': Right before modules information is required,
 such as when responding to a resource
 loader request or generating HTML output.
index 192ad08..d158c1e 100644 (file)
@@ -4173,7 +4173,7 @@ $wgMaxPPExpandDepth = 40;
  *
  * WARNING: Do not add 'file:' to this or internal file links will be broken.
  * Instead, if you want to support file links, add 'file://'. The same applies
- * to any other protocols with the same name as a namespace. See bug #44011 for
+ * to any other protocols with the same name as a namespace. See task T46011 for
  * more information.
  *
  * @see wfParseUrl
index dca2e1b..486abd8 100644 (file)
@@ -1279,12 +1279,15 @@ class Revision implements IDBAccessObject {
                        if ( isset( $row->old_id ) && $wiki === false ) {
                                // Make use of the wiki-local revision text cache
                                $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
-                               $text = $cache->getWithSetCallback(
+                               // The cached value should be decompressed, so handle that and return here
+                               return $cache->getWithSetCallback(
                                        $cache->makeKey( 'revisiontext', 'textid', $row->old_id ),
                                        self::getCacheTTL( $cache ),
-                                       function () use ( $url, $wiki ) {
+                                       function () use ( $url, $wiki, $flags ) {
                                                // No negative caching per Revision::loadText()
-                                               return ExternalStore::fetchFromURL( $url, [ 'wiki' => $wiki ] );
+                                               $text = ExternalStore::fetchFromURL( $url, [ 'wiki' => $wiki ] );
+
+                                               return self::decompressRevisionText( $text, $flags );
                                        },
                                        [ 'pcGroup' => self::TEXT_CACHE_GROUP, 'pcTTL' => $cache::TTL_PROC_LONG ]
                                );
@@ -1293,12 +1296,7 @@ class Revision implements IDBAccessObject {
                        }
                }
 
-               // If the text was fetched without an error, convert it
-               if ( $text !== false ) {
-                       $text = self::decompressRevisionText( $text, $flags );
-               }
-
-               return $text;
+               return self::decompressRevisionText( $text, $flags );
        }
 
        /**
@@ -1344,6 +1342,13 @@ class Revision implements IDBAccessObject {
         * @return string|bool Decompressed text, or false on failure
         */
        public static function decompressRevisionText( $text, $flags ) {
+               global $wgLegacyEncoding, $wgContLang;
+
+               if ( $text === false ) {
+                       // Text failed to be fetched; nothing to do
+                       return false;
+               }
+
                if ( in_array( 'gzip', $flags ) ) {
                        # Deal with optional compression of archived pages.
                        # This can be done periodically via maintenance/compressOld.php, and
@@ -1366,7 +1371,6 @@ class Revision implements IDBAccessObject {
                        $text = $obj->getText();
                }
 
-               global $wgLegacyEncoding;
                if ( $text !== false && $wgLegacyEncoding
                        && !in_array( 'utf-8', $flags ) && !in_array( 'utf8', $flags )
                ) {
@@ -1374,7 +1378,6 @@ class Revision implements IDBAccessObject {
                        # Upconvert on demand.
                        # ("utf8" checked for compatibility with some broken
                        #  conversion scripts 2008-12-30)
-                       global $wgContLang;
                        $text = $wgContLang->iconv( $wgLegacyEncoding, 'UTF-8', $text );
                }
 
index 9af5310..caa3fdb 100644 (file)
@@ -11,8 +11,11 @@ use Wikimedia\Rdbms\LoadBalancer;
  * Storage layer class for WatchedItems.
  * Database interaction.
  *
- * @author Addshore
+ * Uses database because this uses User::isAnon
+ *
+ * @group Database
  *
+ * @author Addshore
  * @since 1.27
  */
 class WatchedItemStore implements StatsdAwareInterface {
index 24cb11f..afe3081 100644 (file)
        "apihelp-query+pageswithprop-example-generator": "Obtenir des informations supplémentaires sur les 10 premières pages utilisant <code>_&#95;NOTOC_&#95;</code>.",
        "apihelp-query+prefixsearch-description": "Effectuer une recherche de préfixe sur les titres de page.\n\nMalgré les similarités dans le nom, ce module n’est pas destiné à être l’équivalent de [[Special:PrefixIndex]] ; pour cela, voyez <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> avec le paramètre <kbd>apprefix</kbd>. Le but de ce module est similaire à <kbd>[[Special:ApiHelp/opensearch|action=opensearch]]</kbd> : prendre l’entrée utilisateur et fournir les meilleurs titres s’en approchant. Selon le serveur du moteur de recherche, cela peut inclure corriger des fautes de frappe, éviter des redirections, ou d’autres heuristiques.",
        "apihelp-query+prefixsearch-param-search": "Chaîne de recherche.",
-       "apihelp-query+prefixsearch-param-namespace": "Espaces de nom à rechercher.",
+       "apihelp-query+prefixsearch-param-namespace": "Espaces de noms à rechercher.",
        "apihelp-query+prefixsearch-param-limit": "Nombre maximal de résultats à renvoyer.",
        "apihelp-query+prefixsearch-param-offset": "Nombre de résultats à sauter.",
        "apihelp-query+prefixsearch-example-simple": "Rechercher les titres de page commençant par <kbd>meaning</kbd>.",
        "apihelp-query+protectedtitles-paramvalue-prop-expiry": "Ajoute l’horodatage de levée de la protection.",
        "apihelp-query+protectedtitles-paramvalue-prop-level": "Ajoute le niveau de protection.",
        "apihelp-query+protectedtitles-example-simple": "Lister les titres protégés",
-       "apihelp-query+protectedtitles-example-generator": "Trouver les liens vers les titres protégés dans l’espace de noms principal",
-       "apihelp-query+querypage-description": "Obtenir une liste fournie par une page spéciale basée sur QueryPage",
-       "apihelp-query+querypage-param-page": "Le nom de la page spéciale. Remarque, ce nom est sensible à la casse.",
+       "apihelp-query+protectedtitles-example-generator": "Trouver les liens vers les titres protégés dans l’espace de noms principal.",
+       "apihelp-query+querypage-description": "Obtenir une liste fournie par une page spéciale basée sur QueryPage.",
+       "apihelp-query+querypage-param-page": "Le nom de la page spéciale. Notez que ce nom est sensible à la casse.",
        "apihelp-query+querypage-param-limit": "Nombre de résultats à renvoyer.",
        "apihelp-query+querypage-example-ancientpages": "Renvoyer les résultats de [[Special:Ancientpages]].",
        "apihelp-query+random-description": "Obtenir un ensemble de pages au hasard.\n\nLes pages sont listées dans un ordre prédéterminé, seul le point de départ est aléatoire. Par exemple, cela signifie que si la première page dans la liste est <samp>Accueil</samp>, la seconde sera <em>toujours</em> <samp>Liste des singes de fiction</samp>, la troisième <samp>Liste de personnes figurant sur les timbres de Vanuatu</samp>, etc.",
index d586beb..392dc45 100644 (file)
        "apierror-readapidenied": "Necesita permiso de lectura para utilizar ese módulo.",
        "apierror-readonly": "A wiki está actualmente en modo de só lectura.",
        "apierror-reauthenticate": "Non se autentificou recentemente nesta sesión. Por favor, volva a autentificarse.",
+       "apierror-revdel-mutuallyexclusive": "Non se pode usar o mesmo campo en <var>hide</var> e <var>show</var>.",
+       "apierror-revdel-needtarget": "É necesario un título obxectivo para este tipo RevDel.",
+       "apierror-revdel-paramneeded": "Requírese polo menos un valor para <var>hide</var> e/ou <var>show</var>.",
+       "apierror-revisions-norevids": "O parámetro <var>revids</var> non se pode utilizar xunto coas opción de lista (<var>$1limit</var>, <var>$1startid</var>, <var>$1endid</var>, <kbd>$1dir=newer</kbd>, <var>$1user</var>, <var>$1excludeuser</var>, <var>$1start</var> e <var>$1end</var>).",
+       "apierror-revisions-singlepage": "Utilizouse <var>titles</var>, <var>pageids</var> ou un xerador para proporcionar múltiples páxinas, pero os parámetros <var>$1limit</var>, <var>$1startid</var>, <var>$1endid</var>, <kbd>$1dir=newer</kbd>, <var>$1user</var>, <var>$1excludeuser</var>, <var>$1start</var> e <var>$1end</var> só poden utilizarse nunha soa páxina.",
        "apierror-revwrongpage": "r$1 non é unha revisión de $2.",
        "apierror-searchdisabled": "A busca <var>$1</var> está desactivada.",
        "apierror-sectionreplacefailed": "Non se puido combinar a sección actualizada.",
        "apierror-sizediffdisabled": "A diferenza de tamaño está deshabilitada no modo Miser.",
        "apierror-spamdetected": "A súa edición foi rexeitada por conter un fragmento de publicidade: <code>$1</code>.",
        "apierror-specialpage-cantexecute": "Non ten permiso para ver os resultados desta páxina especial.",
+       "apierror-stashedfilenotfound": "Non se puido atopar o ficheiro na reserva: $1.",
+       "apierror-stashfailed-complete": "A suba por partes completouse, revise o estado para obter máis detalles.",
+       "apierror-stashfailed-nosession": "Non hai sesión de suba por partes con esa clave.",
+       "apierror-stashfilestorage": "Non se puido almacenar a suba na reservaː $1",
        "apierror-stashinvalidfile": "Ficheiro de reserva incorrecto.",
        "apierror-stashpathinvalid": "Clave de ficheiro con formato incorrecto ou non válidaː $1.",
        "apierror-stashwrongowner": "Erro de propietarioː $1",
        "apierror-stashzerolength": "Ficheiro de lonxitude cero, non pode ser almacenado na reservaː $1.",
        "apierror-systemblocked": "Foi bloqueado automaticamente polo software MediaWiki.",
+       "apierror-templateexpansion-notwikitext": "A expansión de modelos só é compatible co contido en wikitexto. $1 usa o modelo de contido $2.",
        "apierror-unknownaction": "A acción especificada, <kbd>$1</kbd>, non está recoñecida.",
        "apierror-unknownerror-editpage": "Erro descoñecido EditPageː $1.",
        "apierror-unknownerror-nocode": "Erro descoñecido.",
        "apierror-unsupportedrepo": "O repositorio local de ficheiros non permite consultar tódalas imaxes.",
        "apierror-upload-filekeyneeded": "Debe proporcionar un <var>filekey</var> cando <var>offset</var> é distinto de cero.",
        "apierror-upload-filekeynotallowed": "Non pode proporcionar <var>filekey</var> cando <var>offset</var> é 0.",
+       "apierror-upload-inprogress": "A suba dende a reserva está en progreso.",
+       "apierror-upload-missingresult": "Non hai resultado nos datos de estado.",
        "apierror-urlparamnormal": "Non se puideron normalizar os parámetros de imaxe de $1.",
        "apierror-writeapidenied": "Non ten permiso para editar este wiki a través da API.",
        "apiwarn-alldeletedrevisions-performance": "Para ter un mellor rendemento á hora de xerar títulos, estableza <kbd>$1dir=newer</kbd>.",
        "apiwarn-badurlparam": "Non se puido analizar <var>$1urlparam</var> para $2. Só se usará a anchura e a altura.",
+       "apiwarn-badutf8": "O valor pasado para <var>$1</var> contén datos non válidos ou non normalizados. Os datos de texto deberían estar en formato Unicode válido, normalizado en NFC e sen caracteres de control C0 distintos de HT (\\t), LF (\\n) e CR (\\r).",
+       "apiwarn-deprecation-deletedrevs": "<kbd>list=deletedrevs</kbd> quedou obsoleto. No seu lugar, utilice <kbd>prop=deletedrevisions</kbd> ou <kbd>list=alldeletedrevisions</kbd>.",
        "apiwarn-deprecation-httpsexpected": "Utilizouse HTTP cando esperábase HTTPS.",
        "apiwarn-deprecation-parameter": "O parámetro <var>$1</var> está obsoleto.",
        "apiwarn-deprecation-purge-get": "O uso de <kbd>action=purge</kbd> mediante GET está obsoleto. Use POST no seu lugar.",
index 90e60a3..92adaf9 100644 (file)
@@ -1542,7 +1542,7 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
                        $sql .= " WHERE " . $this->makeList( $conds, self::LIST_AND );
                }
 
-               return $this->query( $sql, $fname );
+               return (bool)$this->query( $sql, $fname );
        }
 
        public function makeList( $a, $mode = self::LIST_COMMA ) {
index 58f1666..4785ef1 100644 (file)
@@ -31,10 +31,28 @@ class ImageHistoryPseudoPager extends ReverseChronologicalPager {
         */
        protected $mTitle;
 
+       /**
+        * @since 1.14
+        * @var ImagePage
+        */
+       public $mImagePage;
+
+       /**
+        * @since 1.14
+        * @var File[]
+        */
+       public $mHist;
+
+       /**
+        * @since 1.14
+        * @var int[]
+        */
+       public $mRange;
+
        /**
         * @param ImagePage $imagePage
         */
-       function __construct( $imagePage ) {
+       public function __construct( $imagePage ) {
                parent::__construct( $imagePage->getContext() );
                $this->mImagePage = $imagePage;
                $this->mTitle = clone $imagePage->getTitle();
@@ -53,18 +71,18 @@ class ImageHistoryPseudoPager extends ReverseChronologicalPager {
        /**
         * @return Title
         */
-       function getTitle() {
+       public function getTitle() {
                return $this->mTitle;
        }
 
-       function getQueryInfo() {
+       public function getQueryInfo() {
                return false;
        }
 
        /**
         * @return string
         */
-       function getIndexField() {
+       public function getIndexField() {
                return '';
        }
 
@@ -72,14 +90,14 @@ class ImageHistoryPseudoPager extends ReverseChronologicalPager {
         * @param object $row
         * @return string
         */
-       function formatRow( $row ) {
+       public function formatRow( $row ) {
                return '';
        }
 
        /**
         * @return string
         */
-       function getBody() {
+       public function getBody() {
                $s = '';
                $this->doQuery();
                if ( count( $this->mHist ) ) {
@@ -113,7 +131,7 @@ class ImageHistoryPseudoPager extends ReverseChronologicalPager {
                return $s;
        }
 
-       function doQuery() {
+       public function doQuery() {
                if ( $this->mQueryDone ) {
                        return;
                }
index 2503b22..6a6a3c2 100644 (file)
@@ -176,6 +176,7 @@ class ResourceLoaderImage {
                        'variant' => $variant,
                        'format' => $format,
                        'lang' => $context->getLanguage(),
+                       'skin' => $context->getSkin(),
                        'version' => $context->getVersion(),
                ];
 
index a3b059b..1704481 100644 (file)
@@ -43,9 +43,26 @@ class ResourceLoaderJqueryMsgModule extends ResourceLoaderFileModule {
                        )
                );
 
-               $dataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [ $parserDefaults ] );
+               $mainDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [ $parserDefaults ] );
 
-               return $fileScript . $dataScript;
+               // Associative array mapping magic words (e.g. SITENAME)
+               // to their values.
+               $magicWords = [
+                       'SITENAME' => $this->getConfig()->get( 'Sitename' ),
+               ];
+
+               Hooks::run( 'ResourceLoaderJqueryMsgModuleMagicWords', [ $context, &$magicWords ] );
+
+               $magicWordExtendData = [
+                       'magic' => $magicWords,
+               ];
+
+               $magicWordDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [
+                       $magicWordExtendData,
+                       /* deep= */ true
+               ] );
+
+               return $fileScript . $mainDataScript . $magicWordDataScript;
        }
 
        /**
index 29f5cce..14e5c26 100644 (file)
@@ -41,7 +41,7 @@ class ResourceLoaderOOUIImageModule extends ResourceLoaderImageModule {
                foreach ( $themes as $skin => $theme ) {
                        // Find the path to the JSON file which contains the actual image definitions for this theme
                        // TODO Allow extensions to specify this path somehow
-                       $dataPath = $rootPath . '/' . $theme . '/' . $name . '.json';
+                       $dataPath = $rootPath . '/' . strtolower( $theme ) . '/' . $name . '.json';
                        $localDataPath = $this->localBasePath . '/' . $dataPath;
 
                        // If there's no file for this module of this theme, that's okay, it will just use the defaults
index b0d060b..f6f14b3 100644 (file)
@@ -149,6 +149,15 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                        return null;
                }
 
+               // If the page is a redirect, follow the redirect.
+               if ( $title->isRedirect() ) {
+                       $content = $this->getContentObj( $title );
+                       $title = $content ? $content->getUltimateRedirectTarget() : null;
+                       if ( !$title ) {
+                               return null;
+                       }
+               }
+
                $handler = ContentHandler::getForTitle( $title );
                if ( $handler->isSupportedFormat( CONTENT_FORMAT_CSS ) ) {
                        $format = CONTENT_FORMAT_CSS;
@@ -158,6 +167,19 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                        return null;
                }
 
+               $content = $this->getContentObj( $title );
+               if ( !$content ) {
+                       return null;
+               }
+
+               return $content->serialize( $format );
+       }
+
+       /**
+        * @param Title $title
+        * @return Content|null
+        */
+       protected function getContentObj( Title $title ) {
                $revision = Revision::newKnownCurrent( wfGetDB( DB_REPLICA ), $title->getArticleID(),
                        $title->getLatestRevID() );
                if ( !$revision ) {
@@ -165,13 +187,11 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                }
                $revision->setTitle( $title );
                $content = $revision->getContent( Revision::RAW );
-
                if ( !$content ) {
                        wfDebugLog( 'resourceloader', __METHOD__ . ': failed to load content of JS/CSS page!' );
                        return null;
                }
-
-               return $content->serialize( $format );
+               return $content;
        }
 
        /**
index 8f702ba..8e9629d 100644 (file)
@@ -531,6 +531,33 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        'rcfilters-filtergroup-user-experience-level-conflicts-unregistered',
                        'rcfilters-filter-unregistered-conflicts-user-experience-level'
                );
+
+               $changeTypeGroup = $this->getFilterGroup( 'changeType' );
+               $categoryFilter = $changeTypeGroup->getFilter( 'hidecategorization' );
+               $logactionsFilter = $changeTypeGroup->getFilter( 'hidelog' );
+               $pagecreationFilter = $changeTypeGroup->getFilter( 'hidenewpages' );
+
+               $significanceTypeGroup = $this->getFilterGroup( 'significance' );
+               $hideMinorFilter = $significanceTypeGroup->getFilter( 'hideminor' );
+
+               $hideMinorFilter->conflictsWith(
+                       $categoryFilter,
+                       'rcfilters-hideminor-conflicts-typeofchange-global',
+                       'rcfilters-hideminor-conflicts-typeofchange',
+                       'rcfilters-typeofchange-conflicts-hideminor'
+               );
+               $hideMinorFilter->conflictsWith(
+                       $logactionsFilter,
+                       'rcfilters-hideminor-conflicts-typeofchange-global',
+                       'rcfilters-hideminor-conflicts-typeofchange',
+                       'rcfilters-typeofchange-conflicts-hideminor'
+               );
+               $hideMinorFilter->conflictsWith(
+                       $pagecreationFilter,
+                       'rcfilters-hideminor-conflicts-typeofchange-global',
+                       'rcfilters-hideminor-conflicts-typeofchange',
+                       'rcfilters-typeofchange-conflicts-hideminor'
+               );
        }
 
        /**
index 65e82e8..7bc2dfa 100644 (file)
@@ -407,7 +407,7 @@ abstract class QueryPage extends SpecialPage {
                        $options = isset( $query['options'] ) ? (array)$query['options'] : [];
                        $join_conds = isset( $query['join_conds'] ) ? (array)$query['join_conds'] : [];
 
-                       if ( count( $order ) ) {
+                       if ( $order ) {
                                $options['ORDER BY'] = $order;
                        }
 
@@ -457,26 +457,46 @@ abstract class QueryPage extends SpecialPage {
        public function fetchFromCache( $limit, $offset = false ) {
                $dbr = wfGetDB( DB_REPLICA );
                $options = [];
+
                if ( $limit !== false ) {
                        $options['LIMIT'] = intval( $limit );
                }
+
                if ( $offset !== false ) {
                        $options['OFFSET'] = intval( $offset );
                }
+
+               $order = $this->getCacheOrderFields();
                if ( $this->sortDescending() ) {
-                       $options['ORDER BY'] = 'qc_value DESC';
-               } else {
-                       $options['ORDER BY'] = 'qc_value ASC';
+                       foreach ( $order as &$field ) {
+                               $field .= " DESC";
+                       }
+               }
+               if ( $order ) {
+                       $options['ORDER BY'] = $order;
                }
-               return $dbr->select( 'querycache', [ 'qc_type',
+
+               return $dbr->select( 'querycache',
+                               [ 'qc_type',
                                'namespace' => 'qc_namespace',
                                'title' => 'qc_title',
                                'value' => 'qc_value' ],
                                [ 'qc_type' => $this->getName() ],
-                               __METHOD__, $options
+                               __METHOD__,
+                               $options
                );
        }
 
+       /**
+        * Return the order fields for fetchFromCache. Default is to always use
+        * "ORDER BY value" which was the default prior to this function.
+        * @return array
+        * @since 1.29
+        */
+       function getCacheOrderFields() {
+               return [ 'value' ];
+       }
+
        public function getCachedTimestamp() {
                if ( is_null( $this->cachedTimestamp ) ) {
                        $dbr = wfGetDB( DB_REPLICA );
index 9d92cbd..e7bc496 100644 (file)
@@ -119,4 +119,37 @@ abstract class WantedQueryPage extends QueryPage {
                $label = $this->msg( 'nlinks' )->numParams( $result->value )->escaped();
                return Linker::link( $wlh, $label );
        }
+
+       /**
+        * Order by title for pages with the same number of links to them
+        *
+        * @return array
+        * @since 1.29
+        */
+       function getOrderFields() {
+               return [ 'value DESC', 'namespace', 'title' ];
+       }
+
+       /**
+        * Do not order descending for all order fields.  We will use DESC only on one field, see
+        * getOrderFields above. This overwrites sortDescending from QueryPage::getOrderFields().
+        * Do NOT change this to true unless you remove the phrase DESC in getOrderFiels above.
+        * If you do a database error will be thrown due to double adding DESC to query!
+        *
+        * @return bool
+        * @since 1.29
+        */
+       function sortDescending() {
+               return false;
+       }
+
+       /**
+        * Also use the order fields returned by getOrderFields when fetching from the cache.
+        * @return array
+        * @since 1.29
+        */
+       function getCacheOrderFields() {
+               return $this->getOrderFields();
+       }
+
 }
index 49ca9f4..4056709 100644 (file)
@@ -67,8 +67,6 @@ class SpecialAllMessages extends SpecialPage {
                        wfGetLangObj( $request->getVal( 'lang', $par ) )
                );
 
-               $this->langcode = $this->table->lang->getCode();
-
                $out->addHTML( $this->table->buildForm() );
                $out->addParserOutputContent( $this->table->getFullOutput() );
        }
index d5f5c28..dbcf568 100644 (file)
@@ -229,7 +229,6 @@ class RemexCompatMunger implements TreeHandler {
         * @param integer $sourceStart
         * @param integer $sourceLength
         */
-
        public function insertElement( $preposition, $refElement, Element $element, $void,
                $sourceStart, $sourceLength
        ) {
@@ -248,9 +247,10 @@ class RemexCompatMunger implements TreeHandler {
                        $newParent = $this->serializer->getParentNode( $parent );
                        $parent = $newParent;
                        $parentData = $parent->snData;
+                       $pElement = $parentData->childPElement;
                        $parentData->childPElement = null;
                        $newRef = $refElement->userData;
-                       // FIXME cannot call endTag() since we don't have an Element
+                       $this->endTag( $pElement, $sourceStart, 0 );
                } elseif ( $under && $parentData->isSplittable
                        && (bool)$parentData->ancestorPNode !== $inline
                ) {
@@ -425,7 +425,13 @@ class RemexCompatMunger implements TreeHandler {
        }
 
        public function endTag( Element $element, $sourceStart, $sourceLength ) {
+               $data = $element->userData->snData;
+               if ( $data->childPElement ) {
+                       $this->endTag( $data->childPElement, $sourceStart, 0 );
+               }
                $this->serializer->endTag( $element, $sourceStart, $sourceLength );
+               $element->userData->snData = null;
+               $element->userData = null;
        }
 
        public function doctype( $name, $public, $system, $quirks, $sourceStart, $sourceLength ) {
index 865f630..2b13dd8 100644 (file)
@@ -225,7 +225,7 @@ class UploadFromUrl extends UploadBase {
                        // Well... that's not good!
                        wfDebugLog(
                                'fileupload',
-                               'Short write ' . $this->nbytes . '/' . strlen( $buffer ) .
+                               'Short write ' . $nbytes . '/' . strlen( $buffer ) .
                                        ' bytes, aborting with ' . $this->mFileSize . ' uploaded so far'
                        );
                        fclose( $this->mTmpHandle );
index b413ef9..bd42a12 100644 (file)
@@ -33,7 +33,7 @@ class LanguageAz extends Language {
         * @return mixed|string
         */
        public function ucfirst( $string ) {
-               if ( $string[0] == 'i' ) {
+               if ( substr( $string, 0, 1 ) === 'i' ) {
                        return 'İ' . substr( $string, 1 );
                }
                return parent::ucfirst( $string );
index 3605e8d..3a50987 100644 (file)
@@ -391,7 +391,7 @@ class LanguageKk extends LanguageKk_cyrl {
         * @return string
         */
        public function ucfirst( $string ) {
-               if ( $string[0] == 'i' ) {
+               if ( substr( $string, 0, 1 ) === 'i' ) {
                        $variant = $this->getPreferredVariant();
                        if ( $variant == 'kk-latn' || $variant == 'kk-tr' ) {
                                return 'İ' . substr( $string, 1 );
@@ -408,7 +408,7 @@ class LanguageKk extends LanguageKk_cyrl {
         * @return string
         */
        function lcfirst( $string ) {
-               if ( $string[0] == 'I' ) {
+               if ( substr( $string, 0, 1 ) === 'I' ) {
                        $variant = $this->getPreferredVariant();
                        if ( $variant == 'kk-latn' || $variant == 'kk-tr' ) {
                                return 'ı' . substr( $string, 1 );
index 3a9db73..97936dc 100644 (file)
@@ -62,9 +62,9 @@
        "tog-ccmeonemails": "Stuur my 'n kopie van die e-pos wat ek aan ander stuur",
        "tog-diffonly": "Moenie 'n bladsy se inhoud onder die wysigingsverskil wys nie",
        "tog-showhiddencats": "Wys versteekte kategorië",
-       "tog-norollbackdiff": "Laat verskille weg na terugrol",
+       "tog-norollbackdiff": "Moenie verskille wys as teruggerol word nie",
        "tog-useeditwarning": "Waarsku my as ek 'n gewysigde bladsy verlaat voordat dit gestoor is",
-       "tog-prefershttps": "Gebruik altyd 'n beveiligde verbinding wanneer aangemeld is",
+       "tog-prefershttps": "Gebruik altyd 'n beveiligde verbinding terwyl aangemeld is",
        "underline-always": "Altyd",
        "underline-never": "Nooit",
        "underline-default": "Omslag of webblaaier se verstekwaarde",
        "newwindow": "(verskyn in nuwe venster)",
        "cancel": "Kanselleer",
        "moredotdotdot": "Meer…",
-       "morenotlisted": "Die lys is nie volledig nie.",
+       "morenotlisted": "Dié lys is dalk onvolledig.",
        "mypage": "Gebruikersblad",
        "mytalk": "Bespreking",
        "anontalk": "Bespreking",
        "searcharticle": "Wys",
        "history": "Bladsygeskiedenis",
        "history_short": "Geskiedenis",
+       "history_small": "geskiedenis",
        "updatedmarker": "opgedateer sedert my laaste besoek",
        "printableversion": "Drukbare weergawe",
        "permalink": "Permanente skakel",
        "createacct-reason": "Rede",
        "createacct-reason-ph": "Hoekom u nog 'n rekening skep",
        "createacct-submit": "Skep u rekening",
-       "createacct-another-submit": "Skep nog 'n rekening",
+       "createacct-another-submit": "Skep 'n rekening",
+       "createacct-continue-submit": "Gaan voort om 'n rekening te skep",
+       "createacct-another-continue-submit": "Gaan voort om 'n rekening te skep",
        "createacct-benefit-heading": "{{SITENAME}} word deur mense soos u geskep.",
        "createacct-benefit-body1": "{{PLURAL:$1|wysiging|wysigings}}",
        "createacct-benefit-body2": "{{PLURAL:$1|bladsy|bladsye}}",
        "nocookieslogin": "{{SITENAME}} gebruik koekies vir die aanmeld van gebruikers.\nU blaaier laat nie koekies toe nie.\nSkakel dit asseblief aan en probeer weer.",
        "nocookiesfornew": "Die gebruiker is nie geskep nie omdat die oorsprong nie bevestig kon word nie.\nMaak seker dat u koekies aangeskakel het, herlaai die bladsy en probeer dan weer.",
        "noname": "Ongeldige gebruikersnaam.",
-       "loginsuccesstitle": "Suksesvolle aanmelding",
+       "loginsuccesstitle": "Aangemeld",
        "loginsuccess": "U is nou by {{SITENAME}} as \"$1\" ingeteken.",
-       "nosuchuser": "Die gebruiker \"$1\" bestaan nie.\nGebruikersname is gevoelig vir hoofletters.\nMaak seker dit is reg gespel of [[Special:CreateAccount|skep 'n nuwe rekening]].",
+       "nosuchuser": "Die gebruikernaam \"$1\" bestaan nie.\nGebruikername is gevoelig vir hoofletters.\nMaak seker dit is reg gespel of [[Special:CreateAccount|skep 'n nuwe rekening]].",
        "nosuchusershort": "Daar is geen gebruikersnaam \"$1\" nie. Maak seker dit is reg gespel.",
        "nouserspecified": "U moet 'n gebruikersnaam spesifiseer.",
        "login-userblocked": "Hierdie gebruiker is geblokkeer.\nIntekening word verbied.",
        "searchprofile-advanced-tooltip": "Soek in spesifieke naamruimtes",
        "search-result-size": "$1 ({{PLURAL:$2|1 woord|$2 woorde}})",
        "search-result-category-size": "{{PLURAL:$1|1 kategorielid|$1 kategorielede}} ({{PLURAL:$2|1 subkategorie|$2 subkategorieë}}, {{PLURAL:$3|1 lêer|$3 lêers}})",
-       "search-redirect": "(aanstuur $1)",
+       "search-redirect": "(aangestuur vanaf $1)",
        "search-section": "(afdeling $1)",
        "search-category": "(kategorie $1)",
        "search-file-match": "(stem ooreen met die inhoud van die leêr)",
        "prefs-watchlist-token": "Dophoulys-sleutel:",
        "prefs-misc": "Allerlei",
        "prefs-resetpass": "Verander wagwoord",
-       "prefs-changeemail": "Wysig E-posadres",
+       "prefs-changeemail": "Wysig of verwyder e-posadres",
        "prefs-setemail": "Stel 'n e-posadres",
        "prefs-email": "E-posopsies",
        "prefs-rendering": "Voorkoms",
        "saveprefs": "Stoor voorkeure",
-       "restoreprefs": "Herstel voorkeure",
+       "restoreprefs": "Herstel alle verstekvoorkeure (in alle afdelings)",
        "prefs-editing": "Wysigings",
        "searchresultshead": "Soekresultate",
-       "stub-threshold": "Drempel vir merk as <a href=\"#\" class=\"stub\">saadjie</a> (grepe):",
+       "stub-threshold": "Drempel vir formatering van saadjies ($1):",
        "stub-threshold-sample-link": "voorbeeld",
        "stub-threshold-disabled": "Afgeskakel",
        "recentchangesdays": "Aantal dae wat in onlangse wysigings vertoon word:",
        "youremail": "E-posadres:",
        "username": "{{GENDER:$1|Gebruikersnaam}}:",
        "prefs-memberingroups": "{{GENDER:$2|Lid}} van {{PLURAL:$1|groep|groepe}}:",
+       "group-membership-link-with-expiry": "$1 (tot $2)",
        "prefs-registration": "Registrasiedatum:",
        "yourrealname": "Regte naam:",
        "yourlanguage": "Taal:",
        "prefs-help-signature": "Kommentaar op besprekingsbladsye moet met \"<nowiki>~~~~</nowiki>\" onderteken word.\nDie tildes word in u handtekening omgeskakel en die datum en tyd word insluit.",
        "badsig": "Ongeldige handtekening; gaan HTML na.",
        "badsiglength": "U handtekening is te lank.\nDit mag nie meer as $1 {{PLURAL:$1|karakter|karakters}} bevat nie.",
-       "yourgender": "Geslag:",
-       "gender-unknown": "Ek wil nie sê nie",
+       "yourgender": "Hoe wil u beskryf word?",
+       "gender-unknown": "Die sagteware sal sover mootlik geslagneutrale woorde gebruik om na u te verwys",
        "gender-male": "Hy bewerk wikiblaaie",
        "gender-female": "Sy bewerk wikiblaaie",
        "prefs-help-gender": "Opsioneel: dit word gebruik om gebruikers korrek aan te spreek in die sagteware.\nDie inligting is vir ander gebruikers sigbaar.",
        "email": "E-pos",
-       "prefs-help-realname": "Regte naam is opsioneel.\nAs u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.",
+       "prefs-help-realname": "Regte naam is opsioneel.\nAs u dit verskaf, kan dit gebruik word om erkenning vir u werk te gee.",
        "prefs-help-email": "E-posadres is opsioneel, maar is nodig om u wagwoord aan u te stuur sou u dit vergeet.",
        "prefs-help-email-others": "U kan ook kies om ander toe te laat om u deur u gebruikers- en besprekingsbladsy te kontak sonder om u identiteit te openbaar.",
        "prefs-help-email-required": "E-pos adres word benodig.",
        "recentchanges-legend-heading": "<strong>Sleutel:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sien ook die [[Special:NewPages|lys van nuwe bladsye]])",
        "recentchanges-submit": "Wys",
+       "rcfilters-filter-registered-label": "Geregistreer",
+       "rcfilters-filter-registered-description": "Aangemelde redigeerders.",
+       "rcfilters-filter-unregistered-label": "Ongeregistreer",
+       "rcfilters-filter-unregistered-description": "Redigeerders wat nie aangemeld is nie.",
+       "rcfilters-filter-user-experience-level-newcomer-label": "Nuwelinge",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Minder as 10 wysigings en 4 dae van aktiwiteit.",
        "rcnotefrom": "Wysigings sedert <strong>$2</strong> (maksimum van <strong>$1</strong> word gewys).",
        "rclistfrom": "Vertoon wysigings vanaf $3 $2",
        "rcshowhideminor": "$1 klein wysigings",
        "apisandbox-submit": "Maak versoek",
        "apisandbox-reset": "Vee uit",
        "apisandbox-retry": "Herprobeer",
-       "apisandbox-examples": "Voorbeeld",
-       "apisandbox-results": "Resultaat",
+       "apisandbox-examples": "Voorbeelde",
+       "apisandbox-results": "Resultate",
        "apisandbox-request-url-label": "Versoek-URL:",
        "apisandbox-request-time": "Versoektyd: $1",
        "booksources": "Boekbronne",
        "exif-compression-3": "CCITT Groep 3 fakskodering",
        "exif-compression-4": "CCITT Groep 4 fakskodering",
        "exif-copyrighted-true": "Onder kopiereg",
-       "exif-copyrighted-false": "Publieke Domein",
+       "exif-copyrighted-false": "Kopieregstatus nie gespesifiseer nie",
        "exif-unknowndate": "Datum onbekend",
        "exif-orientation-1": "Normaal",
        "exif-orientation-2": "Horisontaal gespieël",
        "feedback-submit": "Dien in",
        "feedback-thanks": "Dankie! U terugvoer is op die bladsy \"[$2 $1]\" geplaas.",
        "feedback-thanks-title": "Baie dankie!",
-       "searchsuggest-search": "Soek",
+       "searchsuggest-search": "Deursoek {{SITENAME}}",
        "searchsuggest-containing": "bevat...",
        "api-error-badtoken": "Interne fout: slegte teken.",
        "api-error-emptypage": "Die skep van leë nuwe bladsye word nie toegelaat nie.",
        "expand_templates_generate_xml": "Wys XML-ontledingsboom",
        "expand_templates_generate_rawhtml": "Wys rou HTML",
        "expand_templates_preview": "Voorskou",
+       "pagelanguage": "Verander bladsytaal",
        "pagelang-name": "Bladsy",
        "pagelang-language": "Taal",
        "pagelang-use-default": "Gebruik standaard taal",
        "pagelang-select-lang": "Kies taal",
+       "pagelang-reason": "Rede",
        "pagelang-submit": "Dien in",
+       "pagelang-nonexistent-page": "Die bladsy $1 bestaan nie.",
        "right-pagelang": "Wysig die taal van die bladsy",
        "log-name-pagelang": "Logboek van taalwysigings",
        "log-description-pagelang": "Hierdie is 'n logboek van wysigings van die taal van bladsye.",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Laosiaans",
        "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "en-strepie",
+       "special-characters-title-emdash": "em-strepie",
        "special-characters-title-minus": "minusteken",
        "mw-widgets-dateinput-no-date": "Geen datum gekies nie",
        "mw-widgets-dateinput-placeholder-day": "JJJJ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
        "mw-widgets-titleinput-description-new-page": "bladsy bestaan nog nie",
        "mw-widgets-titleinput-description-redirect": "aanstuur na $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "Voeg 'n kategorie by...",
+       "mw-widgets-usersmultiselect-placeholder": "Voeg nog by...",
        "sessionprovider-generic": "$1-sessies",
        "log-action-filter-all": "Alle",
        "authmanager-email-label": "E-pos",
index 09a9bcb..b4a66a0 100644 (file)
        "page_first": "الأولى",
        "page_last": "الأخيرة",
        "histlegend": "اختيار الفرق: علم على صناديق النسخ للمقارنة واضغط قارن بين النسخ المختارة أو الزر بالأسفل.<br />\nمفتاح: (الحالي) = الفرق مع النسخة الحالية\n(السابق) = الفرق مع النسخة السابقة، ط = تغيير طفيف",
-       "history-fieldset-title": "تصÙ\81Ø­ Ø§Ù\84تارÙ\8aØ®",
+       "history-fieldset-title": "اÙ\84بحث Ø¹Ù\86 Ø§Ù\84Ù\85راجعات",
        "history-show-deleted": "المحذوفة فقط",
        "histfirst": "الأقدم",
        "histlast": "الأحدث",
        "rcfilters-filter-categorization-description": "سجلات إضافة أو إزالة الصفحات من التصنيفات.",
        "rcfilters-filter-logactions-label": "الأفعال المسجلة",
        "rcfilters-filter-logactions-description": "الأفعال الإدارية، إنشاء الحسابات، حذف الصفحات، عمليات الرفع....",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "مرشح \"التعديلات الطفيفة\" يتعارض مع مرشح واحد أو أكثر من مرشحات نوع التغيير، وذلك لأن بعض أنواع التغيير لا يمكن التعليم عليها ك\"طفيفة.\" المرشحات المتعارضة معلم عليها في مساحة المرشحات النشطة بالأعلى.",
+       "rcfilters-hideminor-conflicts-typeofchange": "بعض أنواع التغييرات لا يمكن التعليم عليها ك\"طفيفة،\" لذا فهذا المرشح يتعارض مع مرشحات نوع التغيير التالية: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "مرشح نوع التغيير هذا يتعارض مع مرشح \"التعديلات الطفيفة\". بعض أنواع التغييرات لا يمكن التعليم عليها ك\"طفيفة.\"",
        "rcnotefrom": "بالأسفل {{PLURAL:$5|التغيير|التغييرات}} منذ <strong>$2</strong> (إلى <strong>$1</strong> معروضة).",
        "rclistfrom": "أظهر التغييرات بدء من $3 $2",
        "rcshowhideminor": "$1 التعديلات الطفيفة",
index bedd97f..b46c154 100644 (file)
        "page_first": "primera",
        "page_last": "cabera",
        "histlegend": "Seleición de diferencies: marca los botones de les versiones que quies comparar y calca <i>enter</i> o al botón d'abaxo.<br />\nLleenda: '''({{int:cur}})''' = diferencies cola versión actual, '''({{int:last}})''' = diferencies cola versión anterior, '''{{int:minoreditletter}}''' = edición menor.",
-       "history-fieldset-title": "Navegar pel historial",
+       "history-fieldset-title": "Buscar revisiones",
        "history-show-deleted": "Sólo desaniciaes por revisión",
        "histfirst": "lo más antiguo",
        "histlast": "lo más nuevo",
        "rcfilters-filter-categorization-description": "Rexistros de les páxines que s'añaden o borren de categoríes.",
        "rcfilters-filter-logactions-label": "Aiciones rexistraes",
        "rcfilters-filter-logactions-description": "Aiciones alministratives, creación de cuentes, desanicios de páxines, xubíes de ficheros...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "El filtru «Ediciones menores» fai conflictu con un filtru «Tipu de cambiu» o más, porque dellos tipos de cambiu nun pueden designase como «menores». Los filtros que faen conflictu tan marcaos nel área de Filtros Activos, más arriba.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Dellos tipos de cambiu nun pueden designase como «menores», de manera qu'esti filtru fai conflictu colos siguientes filtros «Tipu de cambiu»: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Esti filtru de «Tipu de cambiu» fai conflictu col filtru «Ediciones menores». Dellos tipos de cambiu nun pueden designase como «menores».",
        "rcnotefrom": "Abaxo {{PLURAL:$5|tá'l cambiu|tan los cambios}} dende'l <strong>$3</strong>, a les <strong>$4</strong> (s'amuesen un máximu de <strong>$1</strong>).",
        "rclistfrom": "Amosar los nuevos cambios dende'l $3 a les $2",
        "rcshowhideminor": "$1 ediciones menores",
diff --git a/languages/i18n/atj.json b/languages/i18n/atj.json
new file mode 100644 (file)
index 0000000..bd95460
--- /dev/null
@@ -0,0 +1,509 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Amqui",
+                       "Benoit Rochon",
+                       "Jean-paul echaquan",
+                       "Jeannette Coocoo",
+                       "Nehirowisiw",
+                       "Ninmeka",
+                       "Thibaut120094"
+               ]
+       },
+       "sunday": "manactakaniwon",
+       "monday": "ockorkananiwon",
+       "tuesday": "nicw kicikaw",
+       "wednesday": "nicto kicikaw",
+       "thursday": "new kicikaw",
+       "friday": "tcipaiatikw kicikaw",
+       "saturday": "mari kicikaw",
+       "sun": "manactakaniwon",
+       "mon": "ockorkananiwon",
+       "tue": "Nicw kicikaw",
+       "wed": "nicto kicikaw",
+       "thu": "new kicikaw",
+       "fri": "tcipaiatikw kicikaw",
+       "sat": "mari kicikaw",
+       "january": "Kenositc pisimw",
+       "february": "Akokatcic pisimw",
+       "march": "Nikikw pisimw",
+       "april": "Ka wasikototc pisimw",
+       "may_long": "Wapikon pisimw",
+       "june": "Otehimin pisimw",
+       "july": "Mikomini pisimw",
+       "august": "Otatakon pisimw",
+       "september": "Kakone pisimw",
+       "october": "Namekosi pisimw",
+       "november": "Atikamekw pisimw",
+       "december": "Pitcipipon pisimw",
+       "january-gen": "Kenositc pisimw",
+       "february-gen": "Akokatcic pisimw",
+       "march-gen": "Nikikw pisimw",
+       "april-gen": "Ka wasikototc pisimw",
+       "may-gen": "Wapikon pisimw",
+       "june-gen": "Otehimin pisimw",
+       "july-gen": "Mikomini pisimw",
+       "august-gen": "Otatakon pisimw",
+       "september-gen": "Kakone pisimw",
+       "october-gen": "Namekosi pisimw",
+       "november-gen": "Atikamekw pisimw",
+       "december-gen": "Pitcipipon pisimw",
+       "jan": "Kenositc pisimw",
+       "feb": "Akokatcic pisimw",
+       "mar": "Nikikw pisimw",
+       "apr": "Ka wasikototc pisimw",
+       "may": "Wapikon pisimw",
+       "jun": "Otehimin pisimw",
+       "jul": "Mikomini pisimw",
+       "aug": "Otatakon pisimw",
+       "sep": "Kakone pisimw",
+       "oct": "Namekosi pisimw",
+       "nov": "Atikamekw pisimw",
+       "dec": "Pitcipipon pisimw",
+       "january-date": "Kenositc pisimw $1",
+       "february-date": "Akokatcic pisimw $1",
+       "march-date": "Nikikw pisimw $1",
+       "april-date": "Ka wasikototc pisimw $1",
+       "may-date": "Wapikon pisimw $1",
+       "june-date": "Otehimin pisimw $1",
+       "july-date": "Mikomini pisimw $1",
+       "august-date": "Otatakon pisimw $1",
+       "september-date": "Kakone pisimw $1",
+       "october-date": "Namekosi pisimw $1",
+       "november-date": "Atikamekw pisimw $1",
+       "december-date": "Pitcipipon pisimw $1",
+       "pagecategories": "{{PLURAL:$1|Ka ici arimotcikatek|Ka ici arimotcikateki}}",
+       "category_header": "Masinhikana ka ici arimotcikateki \"$1\"",
+       "hidden-categories": "{{PLURAL:$1|Ka katcictek|Ka katcicteki}}",
+       "listingcontinuesabbrev": "minawatc",
+       "about": "Taci we otciparik",
+       "newwindow": "(cepita kotak ocki osapwakan)",
+       "cancel": "Ponipita",
+       "mypage": "Masinhikan",
+       "mytalk": "Ka ici arimowaniok",
+       "anontalk": "Ka ici arimowaniok",
+       "navigation": "Matcecikinikan",
+       "and": "&#32;kaie",
+       "qbbrowse": "Nantowepaha",
+       "qbedit": "Meckotcita",
+       "namespaces": "Ka ici masinasotcik",
+       "variants": "Pitoc",
+       "navigation-heading": "Matcecikinikana",
+       "errorpagetitle": "Oniparin",
+       "returnto": "Nte ica paskickwemakanik $1",
+       "tagline": "Epe otcipirik {{SITENAME}}",
+       "help": "Witcihici",
+       "search": "Nantokaskeritcikatek",
+       "searchbutton": "Nantokaskeritcikatek",
+       "go": "Go",
+       "searcharticle": "Tapowata",
+       "history": "Ka ki pe icinakok owe masinhikan",
+       "history_short": "Isparik",
+       "history_small": "isparik",
+       "printableversion": "Wi orowipitamone",
+       "permalink": "Matakan pamikicikwepitcikanik",
+       "print": "Orowipitaman",
+       "view": "Tapwatcike",
+       "view-foreign": "Nta ici ntowapata$1",
+       "edit": "Meckotcita",
+       "create": "Ocita",
+       "editthispage": "Mecikotona owe",
+       "delete": "Wepina",
+       "newpage": "Ocki matcecikinakanik",
+       "talkpagelinktext": "ka ici arimowaniok",
+       "personaltools": "Kit irapatcitcikan",
+       "talk": "Ka ici arimowaniok",
+       "views": "Ke icinakok",
+       "toolbox": "Irapitcitcikan",
+       "projectpage": "Kitci wapataman nehe masinihikan ocki otamirowinik otci",
+       "otherlanguages": "Kotakhi aiarimowewina",
+       "redirectedfrom": "(Taci e kiweckwemokok $1)",
+       "lastmodifiedat": "Pamitcitc ka meckotcitakiniwok ni apitc $1, ka tatopihikanihak $2.",
+       "jumpto": "Ica:",
+       "jumptonavigation": "matcetcicihikan",
+       "jumptosearch": "nantokaskeritcikatek",
+       "aboutsite": "Taci we otciparik {{SITENAME}}",
+       "aboutpage": "Project:Enko nehe",
+       "currentevents": "Mekwata",
+       "currentevents-url": "Project:Mekwata",
+       "disclaimers": "Ke ekwamanictcikatek",
+       "disclaimerpage": "Project:Witamakaniwon orocowewin",
+       "edithelp": "Witcihewin e matcetcicihaman",
+       "helppage-top-gethelp": "Witcihici",
+       "mainpage": "Otitikowin",
+       "mainpage-description": "Otitikowin",
+       "portal": "Kaskina namo awik",
+       "portal-url": "Project:Kaskina namo awik",
+       "privacy": "Kekwan ke ki ici nitcictaman",
+       "privacypage": "Project:Kekwan ke ki ici nitcictaman",
+       "ok": "OK",
+       "retrievedfrom": "Neta pe otcipirin \"$1\"",
+       "editsection": "meckotcita",
+       "editold": "meckotcita",
+       "editlink": "meckotcita",
+       "viewsourcelink": "Nte ici nta kanawapata e otciparik",
+       "editsectionhint": "Meckotcita ota: $1",
+       "toc": "Tekaci ecinakok",
+       "showtoc": "Wapata",
+       "hidetoc": "Kata",
+       "confirmable-yes": "Ehe",
+       "confirmable-no": "Nama",
+       "site-atom-feed": "Flux Atom de $1",
+       "page-atom-feed": "\"$1\" Atom feed",
+       "red-link-title": "$1 (nama takon kekwcic)",
+       "nstab-main": "Masinhikan",
+       "nstab-user": "{{GENDER:{{ROOTPAGENAME}}|Ka masinahiketc|Ka masinahiketc}}",
+       "nstab-special": "Ka ici wectakaniok",
+       "nstab-project": "nohwe ma",
+       "nstab-image": "Masinhikan",
+       "nstab-category": "Ka ici arimotcikatek",
+       "mainpage-nstab": "Otitikowin",
+       "error": "Oniparin",
+       "databaseerror-error": "Oniparin: $1",
+       "badtitle": "nama mia icinikatew",
+       "viewsource": "Nte ici nta kanawapata e otciparik",
+       "yourname": "Icinikasowin:",
+       "userlogin-yourname": "Icinikasowin",
+       "userlogin-yourname-ph": "Pitakesinaha kit icinikasowin",
+       "yourpassword": "Pitakesinahotiso:",
+       "userlogin-yourpassword": "Pitakesinahotiso",
+       "userlogin-yourpassword-ph": "Pitakesinihikan",
+       "createacct-yourpassword-ph": "Acta pitakesinihikan",
+       "createacct-yourpasswordagain": "Naskamowicta pitakesinihikan",
+       "createacct-yourpasswordagain-ph": "Minawatc acta pitakesinihikan",
+       "login": "Posi",
+       "logout": "Piskeapikenakan",
+       "userlogout": "Piskeapikenakan",
+       "createaccount": "Masinahotiso",
+       "userlogin-resetpassword-link": "Ki onikan kipitakesinihikan?",
+       "createacct-emailrequired": "Pamikicikwepitcikan matcetcicihikan",
+       "createacct-emailoptional": "Pamikicikwepitcikan matcetcicihikan (kir kotc)",
+       "createacct-email-ph": "Pitakesinaha ki pamikicikwepitcikan matcetcicihikan",
+       "createacct-submit": "Masinahotiso",
+       "createacct-benefit-heading": "{{SITENAME}} Iskwewok,iriniwok ka orisinihiketcik mitowi kir.",
+       "createacct-benefit-body2": "{{PLURAL:$1|masinhikan|masinahikana}}",
+       "loginlanguagelabel": "arimwewin:$1",
+       "pt-login": "Posi",
+       "pt-login-button": "Posi",
+       "pt-createaccount": "Masinahotiso",
+       "pt-userlogout": "Piskeapikenakan",
+       "botpasswords-label-cancel": "Ponipita",
+       "botpasswords-label-delete": "Wepina",
+       "resetpass-submit-cancel": "Ponipita",
+       "passwordreset-username": "Icinikasowin:",
+       "passwordreset-email": "Pamikicikwepitcikan matcetcicihikan:",
+       "bold_sample": "Atisokesinahikan e makatewasinatek",
+       "bold_tip": "Atisokesinahikan e makatewasinatek",
+       "italic_sample": "Atisokesinahikan ka kwectek",
+       "italic_tip": "Atisokesinahikan ka kwectek",
+       "link_sample": "Ka icinkatek takapikenikan",
+       "link_tip": "Pitc itapikesinikan",
+       "extlink_sample": "http://www.example.com ka icinkatek takapikenikan",
+       "extlink_tip": "Masinhikana ka ici tapitik kotakik masinhikanik",
+       "headline_sample": "Atisokesinahikan ke aicinikatek",
+       "nowiki_sample": "Acta atisokesinahikan aka moci ka ki otci nihipitcikatek ota",
+       "nowiki_tip": "aka pamerita e itasinihakw wiki",
+       "image_tip": "E pitakesinahikatek masinahikaniwoc",
+       "media_tip": "Ka ici tapitik onimiskimasinhikan",
+       "sig_tip": "Masinohotiso acit e tato konekisitc pisimw",
+       "summary": "Nosem:",
+       "minoredit": "Apicic meckotciparin",
+       "watchthis": "Wi nosinetahine ohe masinhikan",
+       "savearticle": "Kinokepitcikanik acta",
+       "showpreview": "Tcockapita",
+       "showdiff": "Kanawapata ka meckotcipitcikateki",
+       "loginreqlink": "posi",
+       "editing": "Meckotcita $1",
+       "templatesused": "{{PLURAL:$1|tapapitcikan ka apatak |tapapitcikan ka apatak}} nta paskickwemakanik:",
+       "template-protected": "(nakatweritcikatew)",
+       "template-semiprotected": "(apita nakatoweritakon)",
+       "content-model-javascript": "JavaScript",
+       "viewpagelogs": "Kinawapta kekwan kaki isparik ota masinhikanik",
+       "revisionasof": "Kiwe wapata $1",
+       "previousrevision": "← Nictam ka ki masinatek",
+       "cur": "E otapekitikw",
+       "last": "pitoc",
+       "history-feed-title": "Kotakihi e itatcitcikatekai",
+       "rev-showdeleted": "wapata",
+       "revdelete-show-file-submit": "Ehe",
+       "pagehist": "Ka ki pe icinakok owe masinhikan",
+       "history-title": "Kotakihi e itatcitcikatekai $1",
+       "lineno": "E tosinatek $1 :",
+       "editundo": "nama ntwatc",
+       "searchresults": "Kaki nta kiskeritakok",
+       "searchresults-title": "Kaki nta kiskeritakok \"$1\"",
+       "shown-title": "Akoskoha $1 {{PLURAL:$1|result|results}}  tatwa e matce paskickwemikein",
+       "searchprofile-articles": "Masinhikana ka aicteki",
+       "searchprofile-images": "Mitcetowina",
+       "searchprofile-everything": "Kaskina",
+       "searchprofile-advanced": "Awocamec nantona",
+       "searchprofile-articles-tooltip": "Nantowapita $1",
+       "searchprofile-images-tooltip": "ka nantopitcikatek nakwe masinhikan",
+       "searchprofile-advanced-tooltip": "Nantona taci e ici actek  ka mihikok",
+       "search-result-size": "$1 ({{PLURAL:$2|1 itewin e masinatek|$2 itewina e masinateki}})",
+       "search-redirect": "(Taci e kiweckwemokok $1)",
+       "searchall": "kaskina",
+       "powersearch-legend": "Awocamec nantona",
+       "powersearch-toggleall": "Kaskina",
+       "preferences": "Kirowe",
+       "mypreferences": "Kirowe",
+       "saveprefs": "Kinokepitcikanik",
+       "searchresultshead": "Nantokaskeritcikatek",
+       "stub-threshold-disabled": "Manisinaha",
+       "prefs-searchoptions": "Nantokaskeritcikatek",
+       "youremail": "Matcetcicihikan:",
+       "email": "Matcetcicihikan",
+       "group-user": "Ka mitatc",
+       "right-writeapi": "Ohwe apitcita A.P.I meckoti aitotaman wikik",
+       "newuserlogpage": "E ici masinasotcik ka pitakesinohotosotcik",
+       "action-edit": "mecikotona owe",
+       "enhancedrc-history": "isparik",
+       "recentchanges": "Ka ki meckotcitakanioki",
+       "recentchanges-legend": " Ka meckotcitain matcenikana",
+       "recentchanges-label-newpage": "Ocki paskickwemikan ki ocitamakan",
+       "recentchanges-label-minor": "Apicic meckotciparin",
+       "recentchanges-label-bot": "Icike ki meckotciparin",
+       "recentchanges-label-unpatrolled": "Nama moci koski tapwatcikatew ka ki meckotcipirik",
+       "recentchanges-label-plusminus": " Irikik e tacitcik bytes meckotcipirin e irikwak",
+       "recentchanges-legend-heading": "<strong>itekesinihikan:</strong>",
+       "recentchanges-submit": "Wapata",
+       "rclistfrom": "Nokota ka ki mameckotcipirik nta e otci kitcipirik $2$3",
+       "rcshowhideminor": "$1 memantcic meckotcipirina",
+       "rcshowhideminor-show": "Wapata",
+       "rcshowhideminor-hide": "Kata",
+       "rcshowhidebots": "$1 meckotciparini",
+       "rcshowhidebots-show": "Wapata",
+       "rcshowhidebots-hide": "Kata",
+       "rcshowhideliu": "$1 ka notcitatcik e ici masinohotisotcik",
+       "rcshowhideliu-show": "Wapata",
+       "rcshowhideliu-hide": "Kata",
+       "rcshowhideanons": "$1 nama kiskeritakosiw ka ki masinahaki",
+       "rcshowhideanons-show": "Wapata",
+       "rcshowhideanons-hide": "Kata",
+       "rcshowhidepatr-show": "Wapata",
+       "rcshowhidepatr-hide": "Kata",
+       "rcshowhidemine": "$1 ka meckotcipitaman",
+       "rcshowhidemine-show": "Wapata",
+       "rcshowhidemine-hide": "Kata",
+       "rcshowhidecategorization-show": "Wapata",
+       "rcshowhidecategorization-hide": "Kata",
+       "rclinks": "Nokota nehi $1 ka ki mamitcit mameckotcipitcikatekai $2 nac nta  mamitcitc e kicikakai<br />$3.",
+       "diff": "pitoc",
+       "hist": "e itatisokatek",
+       "hide": "Kata",
+       "show": "Wapata",
+       "minoreditletter": "a",
+       "newpageletter": "O",
+       "boteditletter": "p",
+       "rc-change-size-new": "$1 {{PLURAL:$1|irik|irikw}} ke askowak",
+       "recentchangeslinked": "Nosineta masinhikana e mamowapiketik",
+       "recentchangeslinked-toolbox": "Nosineta masinhikana e mamowapiketik",
+       "recentchangeslinked-title": "E nosinehikatek paskickwemikana ka acotcictek\"$1\"",
+       "recentchangeslinked-page": "Icinikatamowin Ickwemakinikan:",
+       "upload": "Natcipota masinhikan",
+       "filedesc": "Nosem",
+       "fileuploadsummary": "Nosem:",
+       "filesource": "Ite wetciparik:",
+       "upload-dialog-button-cancel": "Ponipita",
+       "upload-dialog-button-save": "Kinokepitcikanik",
+       "upload-form-label-infoform-description": "E witcikemakak",
+       "upload-form-label-infoform-categories": "Nakwe tipanictasinihikan",
+       "upload-form-label-infoform-date": "Tatokonakisitc",
+       "license-header": "orocowatcikan",
+       "listfiles-delete": "wepina",
+       "imgfile": "masinhikan",
+       "listfiles": "Ka ici tapitik onimiskimasinhikan",
+       "listfiles_thumb": "Masinasonic",
+       "listfiles_date": "Tatokonakisitc",
+       "listfiles_user": "Ka mitatc",
+       "listfiles_description": "E witcikemakak",
+       "listfiles-latestversion-yes": "Ehe",
+       "listfiles-latestversion-no": "Nama",
+       "file-anchor-link": "Masinahikaniwoc",
+       "filehist": "E itatisokemakak masinahikaniwoc",
+       "filehist-help": "Ota ici nta makona e tatokonikisitc acitc e tato tipahikaneak kitci wapataman apitc ka masinatek.",
+       "filehist-current": "mekwatc",
+       "filehist-datetime": "Tatokonakisitc acitc tato tipahikaneak",
+       "filehist-thumb": "Masinasonic",
+       "filehist-user": "Ka mitatc",
+       "filehist-dimensions": "E iskwaki",
+       "filehist-comment": "E iteritaman",
+       "imagelinks": "Ke irapatak masinahikaniwoc",
+       "nolinkstoimage": "Nama tekaci apatan masinahikaniwoc.",
+       "upload-disallowed-here": "Nama actew  kata meckotanaman.",
+       "filedelete": "Wepina $1",
+       "filedelete-submit": "Wepina",
+       "randompage": "Nakowepitaman",
+       "randomincategory-category": "Ka ici arimotcikatek:",
+       "randomincategory-submit": "Tapowata",
+       "statistics-pages": "Masinahikana",
+       "pageswithprop-submit": "Tapowata",
+       "brokenredirects-edit": "meckotcita",
+       "brokenredirects-delete": "wepina",
+       "withoutinterwiki-submit": "Wapata",
+       "nbytes": "$1 {{PLURAL:$1|irik}}",
+       "prefixindex-submit": "Wapata",
+       "protectedpages-page": "Masinhikan",
+       "newpages": "Ocki matcecikinakanik",
+       "newpages-submit": "Wapata",
+       "newpages-username": "Icinikasowin:",
+       "booksources": "E otciparik",
+       "booksources-search-legend": "Nantowapata nta kotakahi wapatcikana",
+       "booksources-search": "Nanto kiskeritcikatek",
+       "logeventslist-submit": "Wapata",
+       "checkbox-all": "Kaskina",
+       "allpages": "Kaskina paskickwemikana",
+       "allarticles": "Kaskina paskickwemikana",
+       "allpagessubmit": "Tapowata",
+       "categories": "Nakwe tipanictasinihikan",
+       "categories-submit": "Wapata",
+       "sp-deletedcontributions-contribs": "Wi kipitanikeine",
+       "linksearch-ok": "Nantokaskeritcikatek",
+       "listusers-submit": "Wapata",
+       "listgrouprights-namespaceprotection-namespace": "Ka ici masinasotcik",
+       "emailusername": "Icinikasowin:",
+       "watchlist": "Ka masinateki",
+       "mywatchlist": "Ka masinateki",
+       "watch": "Nanakatcita",
+       "watchlist-hide": "Kata",
+       "watchlist-submit": "Wapata",
+       "wlshowhideanons": "nama kiskeritakosiw ka ki masinahak",
+       "enotif_anon_editor": "nama kiskeritakosiw ka ki masinahak $1",
+       "delete-confirm": "Wepina \"$1\"",
+       "delete-legend": "Wepina",
+       "historyaction-submit": "Wapata",
+       "dellogpage": " Nesitc ka wepinikatek kanaweritcikan",
+       "rollbacklink": "e maninikatek",
+       "restriction-edit": "Meckotcita",
+       "undeleteviewlink": "tapwatcike",
+       "undelete-search-submit": "Nantokaskeritcikatek",
+       "undelete-show-file-submit": "Ehe",
+       "namespace": "Ka ici masinasotcik:",
+       "invert": "koweckisinaha nohwe",
+       "namespace_association": "Taci e mamowisinasonaniwok",
+       "blanknamespace": "(Ka ici ocitakiniwok)",
+       "mycontris": "Wi kipitanikeine",
+       "anoncontribs": "Wi kipitanikeine",
+       "uctop": "(mekwatc)",
+       "month": "Anotc pisimw ka akotcinitc (nac nte nictam):",
+       "sp-contributions-talk": "ka ici arimowaniok",
+       "sp-contributions-submit": "Nantokaskeritcikatek",
+       "whatlinkshere": "Kaskina ickwemikina ka witci acteki",
+       "whatlinkshere-title": "Masinhikan nte mia ka ici tapitik \"$1\"",
+       "whatlinkshere-page": "Masinhikan:",
+       "linkshere": "Masinhikan ka ici tapitik <strong>[[:$1]]</strong>:",
+       "isredirect": "masinhikan ke kweskiticohemikok",
+       "isimage": "e ici tapitik masinahikaniwoc",
+       "whatlinkshere-links": "← ka patiki",
+       "whatlinkshere-hidelinks": "$1 ka patiki",
+       "whatlinkshere-submit": "Tapowata",
+       "ipblocklist-submit": "Nantokaskeritcikatek",
+       "blocklink": "nokipita",
+       "contribslink": "wi kipitanikeine",
+       "movesubpagetalktext": "",
+       "export": "Matcetacaha masinhikana",
+       "allmessages-filter-all": "Kaskina",
+       "allmessages-filter-submit": "Tapowata",
+       "thumbnail-more": "Micata",
+       "tooltip-pt-userpage": "{{GENDER:|Ki masinahikan|Ki masinahikan}}",
+       "tooltip-pt-login": "Arimatc kika witen e icikasoin: nama tatakatc kitci kiskeritakosiin.",
+       "tooltip-pt-logout": "Piskeapikenakan",
+       "tooltip-pt-createaccount": "A arimatc kika ocitan kitci cenaman: nama aric tatakatc otcitakotc.",
+       "tooltip-ca-talk": "Kecpin wi aimihate awik aniherie otci",
+       "tooltip-ca-edit": "Mecikotona owe",
+       "tooltip-ca-addsection": "Kitcipirin ocki aimihitosinihikan",
+       "tooltip-ca-viewsource": "Nakataweritakon paskickwemikan\n Taci e otcipirik",
+       "tooltip-ca-history": "Nictam kaki itasinahikatek",
+       "tooltip-ca-move": "Orinkata owe masinhikan",
+       "tooltip-ca-watch": "E ici nosinehaman ici acotcicta paskickwemakan",
+       "tooltip-search": "Nantokaskeritcikatek {{SITENAME}}",
+       "tooltip-search-go": "Ekota neta icakw kepitc tanokwen itewin",
+       "tooltip-search-fulltext": "Nantona paskickwemakana atisokesinahikanik",
+       "tooltip-p-logo": "Nictam ka nokok",
+       "tooltip-n-mainpage": "Nictam ka nokok",
+       "tooltip-n-mainpage-description": "Nictam ka nokok",
+       "tooltip-n-portal": "Anihe otci ka tacikatek mia keki totaman tan nte ke otinaman ke kictapatak",
+       "tooltip-n-currentevents": "Ke ici miskaman ka wi nta kiseritaman",
+       "tooltip-n-recentchanges": "Ka ki mecikitonikatek",
+       "tooltip-n-randompage": "Kaskina kekowan",
+       "tooltip-n-help": "Witcihiewin",
+       "tooltip-t-whatlinkshere": "Ka masinateti ite e ici itohikemakak",
+       "tooltip-t-recentchangeslinked": "Ka masinateki anihi kaki atcitakaniwok",
+       "tooltip-feed-atom": "Atom itapihikan ohwe otci paskickwemikan",
+       "tooltip-t-upload": "Matceticiha masinhikan",
+       "tooltip-t-specialpages": "Kotahaki masinhikana",
+       "tooltip-t-print": "Matci keki orowipitaman kitci masinatekipan",
+       "tooltip-t-permalink": "Taci mia e otcitik",
+       "tooltip-ca-nstab-main": "Ki nawapta ka masinateki",
+       "tooltip-ca-nstab-user": "Kitci wapitaman nehe masinhikan ka apitak",
+       "tooltip-ca-nstab-special": "Ohowe kitcickwemakinikan,nama actew kitci meckotcitaparik.",
+       "tooltip-ca-nstab-project": "Kitci wapataman nehe masinihikan ocki otamirowinik otci",
+       "tooltip-ca-nstab-image": "Kitci wapitaman nehe masinhikan",
+       "tooltip-ca-nstab-category": "Kitci wapitaman nehe mia ka ici arimotcikatek",
+       "tooltip-save": "Kinokepita ka meckotcisinihaman",
+       "tooltip-preview": "Mikwetc pitaman e kanawapataman kaki meckotcitain, e pwamici actain pamikicikwepitcikanik.",
+       "tooltip-diff": "Nokota nohwe ka ki meckotcisinihaham  masinihikanik",
+       "tooltip-summary": "Acta e arimotaman masinihikan apicic",
+       "simpleantispam-label": "Ntokiskeritcike piciriwe masinihikan \n\nNte nota <strong>nama kekwan</strong> masinaha ota!",
+       "pageinfo-toolboxlink": "Tipatcimo masinahikan",
+       "pageinfo-contentpage-yes": "Ehe",
+       "pageinfo-protect-cascading-yes": "Ehe",
+       "confirm-markpatrolled-button": "OK",
+       "show-big-image": "E otciparik masinahikaniwoc",
+       "show-big-image-preview": "E irikweckwemikisitc$1",
+       "show-big-image-size": "$1 x $2 pixels",
+       "ilsubmit": "Nantokaskeritcikatek",
+       "monday-at": "ockorkananiwon $1",
+       "wednesday-at": "nicto kicikaw $1",
+       "thursday-at": "new kicikaw $1",
+       "friday-at": "tcipaiatikw kicikaw $1",
+       "saturday-at": "mari kicikaw $1",
+       "sunday-at": "manactakaniwon $1",
+       "metadata": "E ici tipatcitcikatek",
+       "exif-orientation": "Itactamictew",
+       "exif-datetime": "Apitc ka meckotcitakaniwok",
+       "exif-make": "Ka ki ocitatatc masinapiskihikaniw",
+       "exif-model": "E icinakok masinapiskohewin",
+       "exif-datetimeoriginal": "E tato piponikak nictam ka masinohaniwok",
+       "exif-datetimedigitized": "e tato konekisit pisimw ka capwapiskipitcikatek",
+       "exif-source": "Ite wetciparik",
+       "exif-iimcategory": "Ka ici arimotcikatek",
+       "exif-orientation-1": "Ekote mia",
+       "exif-contrast-0": "Ekote mia",
+       "exif-saturation-0": "Ekote mia",
+       "exif-sharpness-0": "Ekote mia",
+       "exif-dc-date": "Tatokonakisitc",
+       "namespacesall": "kaskina",
+       "monthsall": "kaskina",
+       "confirm_purge_button": "OK",
+       "confirm-watch-button": "OK",
+       "confirm-unwatch-button": "OK",
+       "confirm-rollback-button": "OK",
+       "quotation-marks": "\"$1\"",
+       "imgmultigo": "Tapowata!",
+       "img-lang-go": "Tapowata",
+       "table_pager_limit_submit": "Tapowata",
+       "version-ext-colheader-description": "E witcikemakak",
+       "version-libraries-description": "E witcikemakak",
+       "redirect-submit": "Tapowata",
+       "fileduplicatesearch-submit": "Nantokaskeritcikatek",
+       "specialpages": "Ka ici wectakaniok",
+       "tags-source-header": "Ite wetciparik",
+       "tags-active-yes": "Ehe",
+       "tags-active-no": "Nama",
+       "tags-edit": "meckotcita",
+       "tags-delete": "wepina",
+       "tags-create-submit": "Ocita",
+       "compare-page1": "Masinhikan 1",
+       "compare-page2": "Masinhikan 2",
+       "htmlform-no": "Nama",
+       "htmlform-yes": "Ehe",
+       "htmlform-cloner-delete": "Manina",
+       "feedback-cancel": "Ponipita",
+       "searchsuggest-search": "Nantona {{SITENAME}}",
+       "expand_templates_ok": "OK",
+       "pagelang-name": "Masinhikan",
+       "log-action-filter-all": "Kaskina",
+       "log-action-filter-block-block": "Nokipita",
+       "authmanager-email-label": "Matcetcicihikan"
+}
index 416fd26..7613dc0 100644 (file)
        "rcfilters-filter-categorization-description": "Запісы пра дадаваньне і выдаленьне старонак з катэгорыяў.",
        "rcfilters-filter-logactions-label": "Журнальныя дзеяньні",
        "rcfilters-filter-logactions-description": "Адміністрацыйныя дзеяньні, стварэньні рахункаў, выдаленьні старонак, загрузкі…",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Фільтар «Дробныя праўкі» канфліктуе з адным ці некалькімі фільтрамі «Тыпаў зьменаў», бо некаторыя тыпы зьменаў ня могуць быць вызначаныя як «дробныя». Канфліктныя фільтры пазначаныя ў разьдзеле актыўных фільтраў вышэй.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Некаторыя тыпы зьменаў ня могуць быць вызначаныя як «дробныя», таму гэты фільтар канфліктуе з наступнымі фільтрамі «Тыпаў зьменаў»: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Гэты фільтар тыпаў зьменаў канфліктуе зь фільтрам «Дробныя праўкі». Некаторыя тыпы зьменаў ня могуць быць вызначаныя як «дробныя».",
        "rcnotefrom": "Ніжэй {{PLURAL:$5|знаходзіцца зьмена|знаходзяцца зьмены}} з <strong>$4 $3</strong> (да <strong>$1</strong> на старонку).",
        "rclistfrom": "Паказаць зьмены з $2 $3",
        "rcshowhideminor": "$1 дробныя праўкі",
index de9737f..acc2b37 100644 (file)
        "search-interwiki-caption": "Сумежныя праекты",
        "search-interwiki-default": "Вынікі з $1:",
        "search-interwiki-more": "(яшчэ)",
+       "search-interwiki-more-results": "больш вынікаў",
        "search-relatedarticle": "Дачыняюцца*",
        "searchrelated": "маюць дачыненне",
        "searchall": "усе",
index 251ce63..c905724 100644 (file)
        "page_first": "প্রথম",
        "page_last": "শেষ",
        "histlegend": "পার্থক্য নির্বাচন: যে সংস্করণগুলো তুলনা করতে চান, সেগুলো চিহ্নিত করে এন্টার বা নিচের বোতামটি টিপুন।<br />\nনির্দেশিকা: (বর্তমান) = বর্তমান সংস্করণের সাথে পার্থক্য, (পূর্ববর্তী) =  পূর্বের সংস্করণের সাথে পার্থক্য, অ = অনুল্লেখ্য সম্পাদনা।",
-       "history-fieldset-title": "বà§\8dরাà¦\89à¦\9c à¦\87তিহাস",
+       "history-fieldset-title": "সà¦\82সà§\8dà¦\95রণà§\87র à¦\9cনà§\8dয à¦\85নà§\81সনà§\8dধান à¦\95রà§\81ন",
        "history-show-deleted": "শুধুমাত্র অপসারিত সংশোধন",
        "histfirst": "সবচেয়ে পুরনো",
        "histlast": "সবচেয়ে নতুন",
index 5daf84e..2c0df33 100644 (file)
        "rcfilters-filter-categorization-description": "Roll ar pajennoù ouzhpennet da rummadoù zo pe dilamet diouto.",
        "rcfilters-filter-logactions-label": "Obererezhioù enrollet",
        "rcfilters-filter-logactions-description": "Obererezhioù melestradurel, krouiñ kontoù, diverkañ pajennoù, enporzhiañ...",
+       "rcfilters-hideminor-conflicts-typeofchange": "Seurtoù kemmoù zo n'hallont ket bezañ merket evel \"dister,\", rak se ez eus tabut etre ar sil-mañ ha siloù ar Seurtoù kemmoù da heul : $1",
        "rcnotefrom": "Setu aze {{PLURAL:$5|ar c'hemm|ar c'hemmoù}} c'hoarvezet abaoe an <strong>$3, $4</strong> (<strong>$1</strong> d'ar muiañ).",
        "rclistfrom": "Diskouez ar c'hemmoù diwezhañ abaoe an/ar $3 $2",
        "rcshowhideminor": "$1 ar c'hemmoù dister",
index ea09bf5..2cb90bb 100644 (file)
        "rcfilters-filter-categorization-description": "Einträge von Seiten, die zu Kategorien hinzugefügt oder aus ihnen entfernt wurden.",
        "rcfilters-filter-logactions-label": "Protokollierte Aktionen",
        "rcfilters-filter-logactions-description": "Administrative Aktionen, Benutzerkontenerstellungen, Seitenlöschungen, hochgeladene Dateien …",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Der Filter „Kleine Bearbeitungen“ kollidiert mit einem oder mehreren Änderungstypfiltern, da bestimmte Änderungstypen nicht als „klein“ festgelegt werden können. Die kollidierenden Filter sind oben im Bereich der aktiven Filter markiert.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Bestimmte Änderungstypen können nicht als „klein“ festgelegt werden, so dass dieser Filter mit den folgenden Änderungstypfiltern kollidiert: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Dieser Änderungstypfilter kollidiert mit dem Filter „Kleine Bearbeitungen“. Bestimmte Änderungstypen können nicht als „klein“ festgelegt werden.",
        "rcnotefrom": "Angezeigt {{PLURAL:$5|wird die Änderung|werden die Änderungen}} seit <strong>$3, $4</strong> (max. <strong>$1</strong> Einträge).",
        "rclistfrom": "Nur Änderungen seit $3, $2 Uhr zeigen.",
        "rcshowhideminor": "Kleine Änderungen $1",
index 2f9f99b..fa5b0c1 100644 (file)
        "viewsource-title": "Cı geyrayışê $1'i bıvin",
        "actionthrottled": "Kerden peysnaya",
        "actionthrottledtext": "Riyê tedbirê anti-spami ra,  wextê do kılmek de şıma nê fealiyeti nêşkenê zaf zêde bıkerê, şıma ki no hedi viyarna ra.\nÇend deqey ra tepeya reyna bıcerrebnên.",
-       "protectedpagetext": "Na per qey nêvuriyayiş ho pawyeno ya zi kerdışe bini.",
-       "viewsourcetext": "To şikinay çımey na pele bıvêne u kopya kerê:{{MediaWiki Wesiqe malumat}}",
+       "protectedpagetext": "Ena perre vırnayış u kerdışanê binan rê şevekniyaya.",
+       "viewsourcetext": "Şıma şenê çımey ena perre bıvênê u kopya kerê {{MediaWiki Wesiqe malumat}}",
        "viewyourtext": "Na pela '''Vurnayışê ke kerdê''' re şıma şenê kopya kerê:",
        "protectedinterface": "Na pela qandê nusnerin destegê verri dana u kes xırabin nêqero deye kerda kılit.",
        "editinginterface": "'''İqaz:''' Şıma yew perra ke softwarei rê nuştey miyan-bestoği dana cı, aye vırnenê.\nVırnayışê ena perre do eno wiki sero asayışê miyan-bestoğê karberanê binan de bıaso.\n\nTadayışi (çarnayışi) rê , yardımê [https://translatewiki.net/wiki/Main_Page?setlang=diq translatewiki.net]i ra haydarê procêdoşkerdışi de vınderê.",
        "sectioneditnotsupported-text": "Destekê vurnayışiê qısımi ena pela vurnayışi de çıniyo.",
        "permissionserrors": "İdari xeta",
        "permissionserrorstext": "Qey {{PLURAL:$1|sebeb|sebebê}} cêrini ra icazetê şıma çıniyo:",
-       "permissionserrorstext-withaction": "{{PLURAL:$1|Sebeba|Sebeb da}} cêri ra icazetê $2 çıniyo:",
+       "permissionserrorstext-withaction": "{{PLURAL:$1|Sebebê|Sebebê}} cêri ra icazetê $2y çıniyo:",
        "recreate-moveddeleted-warn": "'''Hişyari: no pel o ke şıma vırazeni vere cû vırazyayo.'''\n\nDiqet bıkeri no vurnayişê şıma re gerek esto:",
        "moveddeleted-notice": "Ena pela esteriya ya.\nQeydé  esternayışi u wedarnayışi cér dé deya yo.",
        "log-fulllog": "Temamê rocaneyi bıvine",
        "rev-deleted-text-permission": "Çımraviyarnayışê ena pele '''esteriyo'''.\nBeno ke [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] de teferruat esto.",
        "rev-suppressed-text-permission": "Çımraviyarnayışê ena pele '''degusneyayo'''.\nŞıma be idarekerina xo ra şenê ey bıvênê; beno ke [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} degusnayış] de teferruat esto.",
        "rev-deleted-text-unhide": "Çım ra viyarnayışê enê riperri <strong>esteriya</strong>.\nTeferruati [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qeydê esterıtışi] yenê diyene.\nŞıma hewna şenê [$1 nê vırnayışi bıvênê], eke wazenê dewam kerê.",
-       "rev-suppressed-text-unhide": "Çım ra viyarnayışê enê riperri <strong>dewesnaeyê</strong>.\nEtıya [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} dewesnayış] de teferruat esto.\nŞıma pê idarekerina xo hewna şenê [$1 nê çım ra viyarnayışi bıvênê], eke wazenê dewam kerê.",
+       "rev-suppressed-text-unhide": "Çım ra viyarnayışê ena perre <strong>dewesnaeyê</strong>.\nEtıya [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} dewesnayış] de teferruat esto.\nŞıma pê idarekerina xo hewna şenê [$1 nê çım ra viyarnayışi bıvênê], eke wazenê dewam kerê.",
        "rev-deleted-text-view": "Çım ra viyarnayışê enê riperri '''vındarnao'''.\nŞıma şenê bıvênê; teferruat nao naca [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} besternayış].",
        "rev-suppressed-text-view": "Çımraviyarnayışê ena pele '''degusneyayo'''.\nŞıma be idarekerina xo ra şenê ey bıvênê; beno ke [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} degusnayış] de teferruat esto.",
        "rev-deleted-no-diff": "Şıma nêşenê nê ferqi bıvênê, çıke çımraviyarnayışan ra  yew '''esteriyo'''.\nBeno ke [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] de teferruat esto.",
        "wantedtemplates": "Şablonê ke waziyenê",
        "mostlinked": "Pelî ke tewr zafî lînk bîy.",
        "mostlinkedcategories": "Kategoriyê ke tewr zehf meqaley tede estê",
-       "mostlinkedtemplates": "Pelê ke zêdêr gureniyenê",
+       "mostlinkedtemplates": "Perrê ke vêşêr gırweniyenê",
        "mostcategories": "Pelan ke tewr zaf kategorî estê.",
        "mostimages": "Dosyayan ke tewr zaf link estê.",
        "mostinterwikis": "Pelan ke tewr zaf interwiki biyê.",
index eb43cdb..6b1c73d 100644 (file)
        "rcfilters-filter-categorization-description": "Records of pages being added or removed from categories.",
        "rcfilters-filter-logactions-label": "Logged actions",
        "rcfilters-filter-logactions-description": "Administrative actions, account creations, page deletions, uploads....",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "The \"Minor edits\" filter conflicts with one or more Type of Change filters, because certain types of change cannot be designated as \"minor.\" The conflicting filters are marked in the Active Filters area, above.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Certain types of change cannot be designated as \"minor,\" so this filter conflicts with the following Type of Change filters: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "This Type of Change filter conflicts with the \"Minor Edits\" filter. Certain types of change cannot be designated as \"minor.\"",
        "rcnotefrom": "Below {{PLURAL:$5|is the change|are the changes}} since <strong>$3, $4</strong> (up to <strong>$1</strong> shown).",
        "rclistfrom": "Show new changes starting from $2, $3",
        "rcshowhideminor": "$1 minor edits",
index af4e348..d50eb85 100644 (file)
        "savearticle": "Konservi paĝon",
        "savechanges": "Konservi ŝanĝojn",
        "publishpage": "Eldoni paĝon",
-       "publishchanges": "Pulikigi ŝanĝojn",
+       "publishchanges": "Publikigi ŝanĝojn",
        "preview": "Antaŭrigardo",
        "showpreview": "Antaŭrigardo",
        "showdiff": "Montri ŝanĝojn",
index 1ba125a..6b8fe3c 100644 (file)
        "page_first": "primeras",
        "page_last": "últimas",
        "histlegend": "Selección de diferencias: marca las casillas correspondientes a las versiones a comparar y pulsa Intro o el botón de abajo.<br />\nLeyenda: <strong>({{int:cur}})</strong> = diferencias con la versión actual,\n<strong>({{int:last}})</strong> = diferencias con la versión anterior, <strong>{{int:minoreditletter}}</strong> = edición menor.",
-       "history-fieldset-title": "Buscar en el historial",
+       "history-fieldset-title": "Buscar revisiones",
        "history-show-deleted": "Solo revisiones eliminadas",
        "histfirst": "primeras",
        "histlast": "últimas",
        "protect-cascadeon": "Actualmente esta página está protegida porque está transcluida en {{PLURAL:$1|la siguiente página, que tiene|las siguientes páginas, que tienen}} activada la opción de protección de cascada.\nPuedes cambiar el nivel de protección de esta página, pero no afectará a la protección de cascada.",
        "protect-default": "Permitir todos los usuarios",
        "protect-fallback": "Solo permitir usuarios con el permiso «$1»",
-       "protect-level-autoconfirmed": "Solo permitir usuarios autoconfirmados",
-       "protect-level-sysop": "Solo permitir administradores",
+       "protect-level-autoconfirmed": "Solo usuarios autoconfirmados",
+       "protect-level-sysop": "Solo administradores",
        "protect-summary-cascade": "en cascada",
        "protect-expiring": "caduca el $1 (UTC)",
        "protect-expiring-local": "caduca el $1",
index 95ca071..8a47e63 100644 (file)
        "pagelang-language": "Keel",
        "pagelang-use-default": "Kasuta vaikekeelt",
        "pagelang-select-lang": "Vali keel",
+       "pagelang-reason": "Põhjus",
+       "pagelang-submit": "Saada",
+       "pagelang-nonexistent-page": "Lehekülge $1 pole olemas.",
+       "pagelang-unchanged-language": "Lehekülje $1 keeleks on juba määratud \"$2\".",
+       "pagelang-unchanged-language-default": "Lehekülje $1 keeleks on juba määratud viki sisu vaikekeel.",
+       "pagelang-db-failed": "Andmebaasis ei õnnestunud lehekülje keelt muuta.",
        "right-pagelang": "Muuta lehekülje keelt",
        "action-pagelang": "muuta lehekülje keelt",
        "log-name-pagelang": "Keele muutmise logi",
        "credentialsform-provider": "Andmete tüüp:",
        "credentialsform-account": "Konto nimi:",
        "userjsispublic": "Pea silmas, et JavaScripti alamleheküljed ei tohiks sisaldada konfidentsiaalseid andmeid, kuna neid näevad teised kasutajad.",
+       "usercssispublic": "Palun pane tähele: CSS-alamleheküljel ei peaks olema konfidentsiaalseid andmeid, kuna teised kasutajad näevad seda.",
        "restrictionsfield-badip": "Vigane IP-aadress või -aadressivahemik: $1",
        "restrictionsfield-label": "Lubatud IP-aadressivahemikud:",
-       "restrictionsfield-help": "Üks IP-aadress või CIDR-vahemik rea kohta. Et lubada kõik, kasuta järgmist süntaksit:<pre>0.0.0.0/0\n::/0</pre>"
+       "restrictionsfield-help": "Üks IP-aadress või CIDR-vahemik rea kohta. Et lubada kõik, kasuta järgmist süntaksit:<pre>0.0.0.0/0\n::/0</pre>",
+       "revid": "redaktsioon $1",
+       "pageid": "lehekülje identifikaator $1"
 }
index aa7e5e6..4bcece9 100644 (file)
        "recentchanges": "تغییرات اخیر",
        "recentchanges-legend": "گزینه‌های تغییرات اخیر",
        "recentchanges-summary": "آخرین تغییرات ویکی را در این صفحه پی‌گیری کنید.",
-       "recentchanges-noresult": "هیچ تغییری در طول دورهٔ تعیین‌شده با این معیارها هم‌خوانی نداشت.",
+       "recentchanges-noresult": "در فاصله زمانی ارائه شده هیچ تغییری با این معیارهای صورت نگرفته است",
        "recentchanges-feed-description": "آخرین تغییرات ویکی را در این خوراک پی‌گیری کنید.",
        "recentchanges-label-newpage": "این ویرایش صفحه‌ای تازه ایجاد کرد",
        "recentchanges-label-minor": "این یک ویرایش جزئی است",
index ee4122e..7342f35 100644 (file)
        "duplicate-args-category": "Pages utilisant des arguments dupliqués dans les appels de modèle",
        "duplicate-args-category-desc": "La page contient des appels de modèle qui utilisent des arguments dupliqués, comme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "<strong>Attention :</strong> cette page contient de trop nombreux appels à des fonctions coûteuses de l’analyseur syntaxique.\n\nIl devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu’il y en a maintenant $1.",
-       "expensive-parserfunction-category": "Pages avec trop d'appels dispendieux de fonctions de l'analyseur syntaxique",
+       "expensive-parserfunction-category": "Pages avec trop d'appels dispendieux aux fonctions de l'analyseur syntaxique",
        "post-expand-template-inclusion-warning": "<strong>Attention :</strong> cette page contient trop d’inclusions de modèles. Certaines inclusions ne seront pas effectuées.",
        "post-expand-template-inclusion-category": "Pages contenant trop d'inclusions de modèles",
        "post-expand-template-argument-warning": "<strong>Attention :</strong> cette page contient au moins un paramètre de modèle dont la taille après expansion est trop importante. \nCes arguments n’ont donc pas été inclus.",
        "rcfilters-filter-categorization-description": "Enregistrements de pages ajoutées ou supprimées des catégories.",
        "rcfilters-filter-logactions-label": "Actions tracées",
        "rcfilters-filter-logactions-description": "Actions d’administration, créations de compte, suppression de pages, téléchargements…",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Le filtre « Modifications mineures » est en conflit avec au moins un filtre de Type de modification, parce que certains types de modification ne peuvent être marqués comme « mineurs ». Les filtres en conflit sont marqués dans la zone Filtres actifs ci-dessus.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Certains types de modification ne peuvent pas être qualifiés de « mineurs », donc ce filtre est en conflit avec les filtres de Type de modification suivants : $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Ce filtre de Type de modification est en conflit avec le filtre « Modifications mineures ». Certains type sde modification ne peuvent pas être indiqués comme « mineurs ».",
        "rcnotefrom": "Ci-dessous {{PLURAL:$5|la modification effectuée|les modifications effectuées}} depuis le <strong>$3, $4</strong> (affichées jusqu’à <strong>$1</strong>).",
        "rclistfrom": "Afficher les nouvelles modifications depuis le $3 à $2",
        "rcshowhideminor": "$1 les modifications mineures",
index 4c590e9..280b124 100644 (file)
        "copyrightwarning2": "Seenk diaram, dat det sidj {{SITENAME}} faan öödern bewerket, feranert of uk stregen wurd koon. Wan dü det ei wel, do skriiw heer niks iin! \n\nWan dü heer wat iinskrafst, do beest dü diarmä iinferstenen an seekerst tu, dat dü det '''salew skrewen''' heest of faan en steed auernimen heest, huar '''nian rochten''' üüb lei. (Luke bi $1, wan dü muar wed wel.)\n\n'''Auerdreeg nään frääm teksten an bilen saner ferloof!'''",
        "editpage-cannot-use-custom-model": "Det muude faan detheer sidj koon ei feranert wurd.",
        "longpageerror": "'''Error: Dan tekst as {{PLURAL:$1|ian kilobyte|$1 kilobytes}} lung, hi mut oober ei linger wees üs {{PLURAL:$2|ian kilobyte|$2 kilobytes}}.'''Hi koon ei ufspiikerd wurd.",
-       "readonlywarning": "'''Paase üüb: Dü könst uun uugenblak ei üüb det dootenbeenk tugrip. Din dooten kön ei seekert wurd.''' Wees so gud an seekre dan tekst iarst ans üüb dan reegner, an ferschük leederhen, ham tu auerdreegen.\n\nGrünj för det sperin: $1",
+       "readonlywarning": "<strong>Paase üüb: Dü könst uun uugenblak ei üüb det dootenbeenk tugrip. Din dooten kön ei seekert wurd.</strong> Wees so gud an seekre dan tekst iarst ans üüb dan reegner, an ferschük leederhen, ham tu auerdreegen.\n\nGrünj för det sper: $1",
        "protectedpagewarning": "'''Paase üüb: Detdiar sidj as speret wurden. Bluas administratooren kön det bewerke.'''\nUun't logbuk stäänt muar diartu:",
        "semiprotectedpagewarning": "'''Paase üüb: Detdiar sidj as dialwiis tu't bewerkin speret wurden. Bluas gudkäänd brükern kön det bewerke.'''\nUun't logbuk stäänt muar diartu:",
        "cascadeprotectedwarning": "<strong>Paase üüb:</strong> Detdiar sidj koon bluas faan administratooren bewerket wurd. Hat as uun {{PLURAL:$1|detdiar ööder sidj|jodiar ööder sidjen}} iinbünjen, diar troch en kaskaadensper seekert {{PLURAL:$1|as|san}}:",
        "page_first": "Began",
        "page_last": "Aanj",
        "histlegend": "Am a feranrangen uuntuwisin, schük tau werjuunen ütj an trak üüb „{{int:compareselectedversions}}“.<br />\n* '''({{int:cur}})''' = ferskeel tu't aktuel werjuun, '''({{int:last}})''' = ferskeel tu't leetst werjuun, '''{{int:minoreditletter}}''' = letj feranrang.",
-       "history-fieldset-title": "Schük uun a ferluup",
+       "history-fieldset-title": "Schük efter werjuunen",
        "history-show-deleted": "Bluas stregen werjuunen wise",
        "histfirst": "Äälst",
        "histlast": "Neist",
        "saveusergroups": "{{GENDER:$1|Lasmootskap tu brükersköölen}} feranre",
        "userrights-groupsmember": "Lasmoot faan:",
        "userrights-groupsmember-auto": "Faan salew lasmoot faan:",
-       "userrights-groups-help": "Dü könst feranre, tu hün brükerskööl di brüker hiirt:\n* En uunkrüsagt kasche ment, di brüker hiirt diartu.\n* En ei uunkrüsagt kasche ment, di brüker hiart ei diartu.\n* En * ment, dat dü det brükerrocht ei weder wechnem könst (of amkiard).",
+       "userrights-groups-help": "Dü könst feranre, tu hün brükerskööl di brüker hiirt:\n* En uunkrüsagt kasche ment, di brüker hiirt diartu.\n* En ei uunkrüsagt kasche ment, di brüker hiart ei diartu.\n* En * ment, dat dü det brükerrocht ei weder wechnem könst (of amkiard).\n* En # ment, dat dü di tidjponkt bluas efter bääften fersküüw könst, ei efter föören.",
        "userrights-reason": "Grünj:",
        "userrights-no-interwiki": "Dü heest ei det rocht, am brükerrochten uun ööder wikis tu feranrin.",
        "userrights-nodatabase": "Det dootenbeenk $1 jaft at ei, tumanst ei lokaal.",
        "rightslogtext": "Det as det logbuk auer feranrangen faan brükerrochten.",
        "action-read": "jüdeer sid leese",
        "action-edit": "detdiar sidj tu bewerkin",
-       "action-createpage": "nei sidjen tu maagin",
+       "action-createpage": "an maage detdiar sidj",
        "action-createtalk": "an maage detdiar diskuschuunsidj",
        "action-createaccount": "jüdeer brükerkonto mååge",
        "action-history": "di ferluup faan detdiar sidj uuntulukin.",
        "recentchanges-page-added-to-category": "[[:$1]] tu kategorii saat",
        "recentchanges-page-added-to-category-bundled": "[[:$1]] tu kategorii saat, [[Special:WhatLinksHere/$1|detdiar sidj as uun ööder sidjen iinbünjen.]]",
        "recentchanges-page-removed-from-category": "[[:$1]] faan't kategorii wechnimen",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] an {{PLURAL:$2|ian sidj muar|$2 muar sidjen}} faan det kategorii wechnimen",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] faan det kategorii wechnimen, [[Special:WhatLinksHere/$1|detdiar sidj as uun ööder sidjen iinbünjen]]",
        "upload": "Datei huuchschüür",
        "uploadbtn": "Datei huuchschüür",
        "reuploaddesc": "Ufbreeg an turag tu't sidj för't huuchschüüren",
        "backend-fail-read": "Det datei $1 küd ei leesen wurd.",
        "backend-fail-create": "Det datei $1 küd ei seekert wurd.",
        "backend-fail-maxsize": "Det datei $1 küd ei seekert wurd, auer det grater üs {{PLURAL:$2|1 byte|$2 bytes}} as.",
-       "backend-fail-readonly": "Det süsteem „$1“ koon uun uugenblak bluas lees. Di grünj as: „$2“",
+       "backend-fail-readonly": "Det dootebeenk „$1“ koon uun uugenblak bluas lees. Di grünj as: <em>$2</em>",
        "backend-fail-synced": "Det datei „$1“ woort jüst faan't süsteem bewerket.",
        "backend-fail-connect": "Küd ei mä't süsteem „$1“ ferbinj.",
        "backend-fail-internal": "Uun't süsteem „$1“ as wat skiaf gingen.",
        "nopagetext": "Det sidj, wat fersköwen wurd skal, as ei diar.",
        "pager-newer-n": "{{PLURAL:$1|1 neier|$1 neier}}",
        "pager-older-n": "{{PLURAL:$1|1 ääler|$1 ääler}}",
-       "suppress": "Oversight",
+       "suppress": "Fersteeg",
        "querypage-disabled": "Detdiar spezial-sidj as ei aktiif, am det süsteem ei tu auerläästin.",
        "apihelp": "Halep för API",
        "apihelp-no-such-module": "Moduul \"$1\" ei fünjen.",
        "booksources-text": "Detdiar list ferwiset üüb wääbsteeden, diar nei an brükt buken ferkuupe. Diar feist dü uk muar tu weden. {{SITENAME}} hää mo jodiar kuuplidj oober niks tu dun.",
        "booksources-invalid-isbn": "Detdiar ISBN as woorskiinelk ferkiard. Luke noch ans efter, of det rocht auerdraanj wurden as.",
        "specialloguserlabel": "Brüker:",
-       "speciallogtitlelabel": "Mual (sidjennööm of brüker):",
+       "speciallogtitlelabel": "Mual (Tiitel of {{ns:user}}:brükernööm för di brüker):",
        "log": "Logbuken",
        "all-logs-page": "Aal a öfentelk logbuken",
        "alllogstext": "Diar wurd aal a logbuken faan {{SITENAME}} uunwiset.\nDet woort efter logbukslach, brüker of sidjennööm uunwiset. Grat- an letjskriiwang skel beaachtet wurd.",
        "emailccsubject": "Kopii faan din mädialang tu $1: $2",
        "emailsent": "E-mail as wechschüürd wurden",
        "emailsenttext": "Din e-mail as wechschüürd wurden.",
-       "emailuserfooter": "Detdiar e-mail as faan „$1“ tu „$2“ auer det funktjuun „{{int:emailuser}}“ bi {{SITENAME}} schüürd wurden.",
+       "emailuserfooter": "Detdiar E-Mail as faan „$1“ tu „{{GENDER:$2|$2}}“ mä det funktjuun „{{int:emailuser}}“ bi {{SITENAME}} {{GENDER:$1|schüürd}} wurden. Wan {{GENDER:$2|dü}} üüb detdiar E-Mail swaarest, woort det direkt tu {{GENDER:$1|di|det}} ufschüürer schüürd. Diarbi feit {{GENDER:$1|hi|hat}} {{GENDER:$2|din}} E-Mail-adres tu weden.",
        "usermessage-summary": "Süsteemnooracht seekert.",
        "usermessage-editor": "Süsteemnoorachten siinst",
        "watchlist": "Uun't uug behual",
        "deletepage": "Sidj strik",
        "confirm": "Gudkään",
        "excontent": "diar sted: „$1“",
-       "excontentauthor": "diar sted: „$1“ (iansagst bewerker: [[Special:Contributions/$2|$2]])",
+       "excontentauthor": "Diar sted: „$1“, an di iansagst bewerker wiar: [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskuschuun]])",
        "exbeforeblank": "diar sted föör't leesag maagin: „$1“",
        "delete-confirm": "Strik \"$1\"",
        "delete-legend": "Strike",
        "delete-toobig": "Detdiar sidj hää muar üs $1 {{PLURAL:$1|werjuun|werjuunen}} . Sok sidjen kön ei so gau stregen wurd, ööders san a servers plaat.",
        "delete-warning-toobig": "Detdiar sidj hää muar üs $1 {{PLURAL:$1|werjuun|werjuunen}} . Det striken koon komer maage bi't dootenbeenk.",
        "deleteprotected": "Dü könst detdiar sidj ei strik, auer det seekert wurden as.",
-       "deleting-backlinks-warning": "'''Paase üüb:''' Diar ferwise noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|ööder sidjen]] üüb det sidj, diar dü strik wel. Of det sidj as noch huarööders iinbünjen.",
+       "deleting-backlinks-warning": "<strong>Paase üüb:</strong> Diar ferwise noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|ööder sidjen]] üüb det sidj, diar dü strik wel. Of det sidj as noch huarööders iinbünjen.",
        "rollback": "Feranrangen turagsaat",
        "rollbacklink": "turagsaat",
        "rollbacklinkcount": "$1 {{PLURAL:$1|feranrang|feranrangen}} turagsaat",
        "editcomment": "Tuupfaadet feranrang: <em>$1</em>.",
        "revertpage": "Feranrangen faan [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskuschuun]]) san üüb di leetst stant faan [[User:$1|$1]] turagsaat wurden.",
        "revertpage-nouser": "Feranrangen faan en ferbürgenen brüker turagsaat an det leetst werjuun faan {{GENDER:$1|[[User:$1|$1]]}} weder iinsteld.",
-       "rollback-success": "Feranrangen faan $1 turagsaat an det leetst werjuun faan $2 weder iinsteld.",
+       "rollback-success": "Feranrangen faan {{GENDER:$3|$1}} san turagsaat an det leetst werjuun faan {{GENDER:$4|$2}} as weder iinsteld wurden.",
        "sessionfailure-title": "session feeler",
        "sessionfailure": "Diar as wat skiaf gingen bi't auerdreegen faan din brükerdooten.\nAm dat diar ei noch muar skiaf gongt, as det aktjuun ufbreegen wurden.\nGung turag, an began faan föören.",
        "changecontentmodel": "Det muude faan det sidj feranre",
        "changecontentmodel-cannot-convert": "Det muude faan [[:$1]] koon ei tu typ $2 feranert wurd.",
        "changecontentmodel-nodirectediting": "Uun det $1 muude könst dü ei direkt bewerke",
        "log-name-contentmodel": "Muude-feranrang-logbuk",
-       "log-description-contentmodel": "Föörkemen am det sidjenmuude",
+       "log-description-contentmodel": "Detdiar sidj wiset feranrangen bi det muude faan sidjen, an uk sok sidjen, diar efter en ööder muude maaget san.",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|hää}} det muude faan sidj $3 faan „$4“ efter „$5“ feranert.",
        "logentry-contentmodel-change-revertlink": "turagsaat",
        "logentry-contentmodel-change-revert": "turagsaat",
        "sp-contributions-newbies-sub": "Faan nei brükern",
        "sp-contributions-newbies-title": "Brükerbidracher faan nei brükern",
        "sp-contributions-blocklog": "Sper-logbuk",
-       "sp-contributions-suppresslog": "Ei uunwiset brüker-bidracher",
-       "sp-contributions-deleted": "Stregen bidracher",
+       "sp-contributions-suppresslog": "Fersteecht {{GENDER:$1|brükerbidracher}}",
+       "sp-contributions-deleted": "Stregen {{GENDER:$1|brüker}} bidtacher",
        "sp-contributions-uploads": "Huuchschüürd bilen",
        "sp-contributions-logs": "Logbuken",
        "sp-contributions-talk": "Diskuschuun",
        "whatlinkshere-hideredirs": "$1 widjerfeerangen",
        "whatlinkshere-hidetrans": "$1 iinbünjen föörlaagen",
        "whatlinkshere-hidelinks": "$1 ferwisangen",
-       "whatlinkshere-hideimages": "Ferwisangen tu datein $1",
+       "whatlinkshere-hideimages": "$1 ferwisangen tu datein",
        "whatlinkshere-filters": "Filtere",
        "autoblockid": "Automaatisk sper #$1",
        "block": "Brüker spere",
        "cant-move-to-user-page": "Dü mutst nian sidjen üüb en brükersidj fersküüw (bluas üüb onersidjen).",
        "cant-move-category-page": "Dü mutst nian kategoriisidjen fersküüw.",
        "cant-move-to-category-page": "Dü mutst nian sidj tu en kategoriisidj fersküüw.",
-       "newtitle": "Müülj:",
+       "newtitle": "Nei tiitel:",
        "move-watch": "Jodiar sidjen uun't uug behual",
        "movepagebtn": "Sidj fersküüw",
        "pagemovedsub": "Fersküüwen hää loket",
        "movenosubpage": "Det sidj hää nian onersidjen.",
        "movereason": "Grünj:",
        "revertmove": "turag fersküüw",
-       "delete_and_move_text": "== Striken nuadag  ==\n\nDet sidj „[[:$1]]“ as al diar. Wel dü det strik, am det sidj tu fersküüwen?",
+       "delete_and_move_text": "Det sidj „[[:$1]]“ as al diar. Wel dü det strik, am det sidj tu fersküüwen?",
        "delete_and_move_confirm": "Ja, sidj strik",
        "delete_and_move_reason": "Stregen, am steeds för det fersküüwen faan „[[$1]]“ tu maagin.",
        "selfmove": "A nöömer san likedenang. Dü könst nian sidj üüb ham salew fersküüw.",
        "move-leave-redirect": "Widjerfeerang iinracht",
        "protectedpagemovewarning": "'''Paase üüb: Detdiar sidj as speret wurden. Bluas administratooren kön det fersküüw.'''\nUun't logbuk stäänt muar diartu:",
        "semiprotectedpagemovewarning": "'''Paase üüb:''' Detdiar sidj as dialwiis tu't bewerkin speret wurden. Bluas gudkäänd brükern kön det fersküüw.\nUun't logbuk stäänt muar diartu:",
-       "move-over-sharedrepo": "== Datei as al diar ==\n[[:$1]] stäänt uun en gemiansoom brükt archiif. Det fersküüwen üüb didiar nööm auerskraft det gemiansoom brükt datei.",
+       "move-over-sharedrepo": "[[:$1]] stäänt uun en gemiansoom brükt archiif. Det fersküüwen üüb didiar nööm auerskraft det gemiansoom brükt datei.",
        "file-exists-sharedrepo": "Didiar dateinööm woort al uun en gemiansoom archiif brükt. Wees so gud, an nem en öödern nööm.",
        "export": "Sidjen eksportiare",
        "exporttext": "Mä detdiar spezial-sidj könst dü di tekst mä aal sin werjuunen tu en XML-datei eksportiare. Det nei datei koon do faan en ööder MediaWiki-Wiki [[Special:Import|importiaret]] wurd.\n\nSkriiw a sidjennöömer iin uun det tekstfial (man bluas ään noom uun arke rä).\n\nDi eksport as uk mä [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] mögelk, tun bispal för det [[{{MediaWiki:Mainpage}}]].",
        "tooltip-feed-rss": "RSS-feed för detdiar sidj",
        "tooltip-feed-atom": "Atom-feed för detdiar sidj",
        "tooltip-t-contributions": "List mä bidracher faan {{GENDER:$1|didiar brüker|detdiar brüker}} uunluke",
-       "tooltip-t-emailuser": "En e-mail tu didiar brüker schüür",
+       "tooltip-t-emailuser": "En E-Mail tu {{GENDER:$1|didiar|detdiar}} brüker schüür",
        "tooltip-t-info": "Muar auer detdiar sidj",
        "tooltip-t-upload": "Datein huuchschüür",
        "tooltip-t-specialpages": "Auersicht auer aal a spezial-sidjen",
        "lastmodifiedatby": "Det sidj as tuleetst di $1 am a klook $2 faan $3 feranert wurden.",
        "othercontribs": "Üüb grünjlaag faan det werk faan $1.",
        "others": "öödern",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|brüker|brükern}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|brüker}}|brükern}} $1",
        "anonusers": "{{PLURAL:$2|anonüümen|anonüüm}} {{SITENAME}}-{{PLURAL:$2|brüker|brükern}} $1",
        "creditspage": "Sidjeninformatsjuunen",
        "nocredits": "Diar san nian sidjeninformatsjuunen",
index e10b921..9f29496 100644 (file)
        "toc": "Ynhâld",
        "showtoc": "sjen litte",
        "hidetoc": "net sjen litte",
+       "collapsible-collapse": "Ynklappe",
+       "collapsible-expand": "Utklappe",
        "confirmable-yes": "Ja",
        "confirmable-no": "Nee",
        "thisisdeleted": "\"$1\" lêze of werombringe?",
        "externaldberror": "Der is in fout by it oanmelden by de database of jo hawwe gjin tastimming om jo ekstern account by te wurkjen.",
        "login": "Oanmelde",
        "nav-login-createaccount": "Oanmelde",
-       "userlogin": "Oanmelde",
-       "userloginnocreate": "Ynlogge",
        "logout": "Ofmelde",
        "userlogout": "Ofmelde",
        "notloggedin": "Net oanmelde",
        "userlogin-noaccount": "Hasto gjin akkount?",
        "userlogin-joinproject": "Meidwaan {{SITENAME}}",
-       "nologin": "Noch net oanmelden as meidogger? $1.",
-       "nologinlink": "Meitsje in brûker oan",
        "createaccount": "Registrearje",
-       "gotaccount": "Hawwe jo jo al as meidogger oanmelde? '''$1'''.",
-       "gotaccountlink": "Oanmelde",
-       "userlogin-resetlink": "Ynlochdata fergetten?",
        "userlogin-resetpassword-link": "Wachtwurd fergetten?",
        "createacct-emailrequired": "E-mailadres",
        "createacct-emailoptional": "E-mailadres (net ferplichte)",
        "createacct-another-email-ph": "E-mailadres ynfiere",
        "createaccountmail": "troch e-mail",
        "createacct-realname": "Echte namme (net ferplichte)",
-       "createaccountreason": "Reden:",
        "createacct-reason": "Reden",
        "createacct-reason-ph": "Wêrom makkesto in oare akkount?",
        "createacct-submit": "Meitsje in akkount",
        "revertmerge": "Gearfoeging ûngedien meitsje",
        "mergelogpagetext": "Hjirûnder stiet in list fan resinte gearfoegings fan ien side-skiednis nei in oaren.",
        "history-title": "$1: ferzjeskiednis",
+       "difference-title": "Ferskil tusken refyzjes fan \"$1\"",
        "lineno": "Rigel $1:",
        "compareselectedversions": "Ferlykje selektearre ferzjes",
        "showhideselectedversions": "Oantikke ferzjes wol/net sjen litte",
        "saveprefs": "Bewarje",
        "restoreprefs": "Tebek nei de standertynstellings",
        "prefs-editing": "Siden bewurkje",
-       "rows": "Rigen",
-       "columns": "Kolommen",
        "searchresultshead": "Sykje",
        "stub-threshold": "Drompel foar markearring <a href=\"#\" class=\"stub\">stobbe</a> (bytes):",
        "stub-threshold-disabled": "Utskeakele",
        "userrights-reason": "Reden:",
        "userrights-no-interwiki": "Jo hawwe gjin foech om rjochten fan meidoggers op oare wikis te wizigjen.",
        "userrights-nodatabase": "Databank $1 bestiet net of is net lokaal.",
-       "userrights-nologin": "Jo moatte jo [[Special:UserLogin|oanmelde]] as rjochtenútfurder om rjochten fan meidoggers wizigje te kinnen.",
-       "userrights-notallowed": "Jo hawwe gjin rjochten om rjochten fan meidoggers te wizigjen.",
        "userrights-changeable-col": "Groepen dy't jo beheare kinne",
        "userrights-unchangeable-col": "Groepen dy't jo net beheare kinne",
        "userrights-irreversible-marker": "$1*",
        "recentchanges-label-minor": "Dit is in tekstwiziging",
        "recentchanges-label-bot": "Dizze wiziging is troch in robot makke",
        "recentchanges-label-unpatrolled": "Dizze wiziging is noch net neisjûn",
+       "recentchanges-label-plusminus": "De sidegrutte is mei dit oantal bytes wizige",
        "recentchanges-legend-heading": "<strong>Leginda:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sjoch ek de [[Special:NewPages|list mei nije siden]])",
        "rcnotefrom": "Dit binne de feroarings sûnt <b>$2</b> (maksimaal <b>$1</b>).",
        "revdelete-restricted": "hat beheinings oplein oan behearders",
        "revdelete-unrestricted": "hat beheinings foar behearders goedmakke",
        "rightsnone": "(gjin)",
-       "revdelete-summary": "gearfetting bewurkje",
        "feedback-back": "Foarige",
        "feedback-cancel": "Annulearje",
        "feedback-close": "Dien",
        "feedback-submit": "Ferstjoere",
        "feedback-useragent": "Useragent:",
        "searchsuggest-search": "Sykje",
-       "api-error-unknown-code": "Unbekende flater: \"$1\".",
        "api-error-unknownerror": "Unbekende flater: \"$1\".",
        "duration-seconds": "$1 {{PLURAL:$1|sekonde|sekonden}}",
        "duration-minutes": "$1 {{PLURAL:$1|minút|minuten}}",
index 57127d7..8f7dd00 100644 (file)
        "rcfilters-filter-categorization-description": "רישומים על דפים שנוספו לקטגוריות או הוסרו מהן.",
        "rcfilters-filter-logactions-label": "פעולות יומן",
        "rcfilters-filter-logactions-description": "פעולות מנהליות, יצירת חשבונות, מחיקת דפים, העלאות...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "מסנן \"עריכות משניות\" מתנגש עם מסנן סוג השינויים אחד או יותר, כי סוגים מסוימים של שינויים אינם יכולים להיות מסווגים בתור \"משניים\". המסננים המתנגשים מסומנים באזור המסננים הפעילים לעיל.",
+       "rcfilters-hideminor-conflicts-typeofchange": "סוגים מסוימים של שינויים אינם יכולים להיות מסווגים כ\"משניים\", כך שמסנן זה מתנגש עם מסנן סוג השינויים הבא: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "מסנן סוג השינויים הזה מתנגש עם מסנן \"עריכות משניות\". סוגים מסוימים של שינויים אינם יכולים מסווגים כ\"משניים\".",
        "rcnotefrom": "להלן {{PLURAL:$5|השינוי שבוצע|השינויים שבוצעו}} מאז <strong>$3, $4</strong> (מוצגים עד <strong>$1</strong>).",
        "rclistfrom": "הצגת שינויים חדשים החל מ־$2, $3",
        "rcshowhideminor": "$1 עריכות משניות",
index dd537f5..7811528 100644 (file)
        "page_first": "पहला",
        "page_last": "आखिरी",
        "histlegend": "अन्तर चयन: अन्तर देखने के लिए पुराने अवतरणों के आगे दिए गए रेडियो बॉक्स पर क्लिक करें तथा एण्टर करें अथवा नीचे दिए हुए बटन पर क्लिक करें<br />\nलिजण्ड: (चालू) = सद्य अवतरण के बीच में अन्तर,\n(आखिरी) = पिछले अवतरण के बीच में अन्तर, छो = छोटा बदलाव।",
-       "history-fieldset-title": "à¤\87तिहास à¤\95ा à¤µà¤¿à¤\9aरण à¤\95रें",
-       "history-show-deleted": "सà¥\82à¤\9aà¥\80 à¤®à¥\87à¤\82 à¤\95à¥\87वल à¤\9bà¥\81पाà¤\8f à¤¹à¥\81à¤\8f à¤\85वतरण à¤¦à¤¿à¤\96ाà¤\8fà¤\81",
+       "history-fieldset-title": "à¤\85वतरण à¤¹à¥\87तà¥\81 à¤\96à¥\8bà¤\9cें",
+       "history-show-deleted": "हà¤\9fायà¥\87 à¤\97à¤\8f à¤\85वतरण à¤¹à¥\80",
        "histfirst": "सबसे पुराना",
        "histlast": "सबसे नया",
        "historysize": "($1 {{PLURAL:$1|बाइट}})",
        "prefs-help-prefershttps": "यह वरीयता आपके अगले लॉगिन पर प्रभावी होगी।",
        "prefswarning-warning": "आपने अपनी वरीयताओं में एैसे परिवर्तन किए हैं जिन्हे अभी तक संचित नहीं किया गया है। अगर अाप \"$1\" पर बिना क्लिक किये इस पृष्ठ को छोड़ देते हैं तो अापकी वरीयताओं का अद्यतन नहीं किया जाएगा।",
        "prefs-tabs-navigation-hint": "सुझाव: आप टैब्स सूची में टैब्स के बीच आवागमन करने के लिए बाएँ और दाएँ तीर कुंजियों का उपयोग कर सकते हैं।",
-       "userrights": "सदस्य अधिकार व्यवस्थापन",
+       "userrights": "सदस्य अधिकार",
        "userrights-lookup-user": "सदस्य चुनें",
        "userrights-user-editname": "सदस्यनाम दें:",
-       "editusergroup": "{{GENDER:$1|सदस्य}} समूहों का संपादन करें",
+       "editusergroup": "सदस्य समूह दिखायें",
        "editinguser": "सदस्य '''[[User:$1|$1]]''' $2 के अधिकार बदलें\n{{GENDER:$1|सदस्य}} के सदस्य अधिकार बदले जा रहे हैं <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "सदस्य समूहों का संपादन करें",
        "userrights-viewusergroup": "सदस्य समूह देखें",
        "userrights-expiry-current": "समाप्ती $1",
        "userrights-expiry-none": "समाप्त नहीं होता",
        "userrights-expiry": "समाप्ति:",
+       "userrights-expiry-existing": "वर्तमान समाप्ति समय: $3, $2",
        "userrights-expiry-othertime": "अन्य समय:",
        "userrights-expiry-options": "एक दिन:1 day,एक सप्ताह:1 week,एक महीना:1 month,तीन महीने:3 months,छः महीने:6 months,एक वर्ष:1 year",
        "userrights-invalid-expiry": "\"$1\" समूह के लिए समाप्ती तिथि अमान्य है।",
        "action-upload_by_url": "यू॰आर॰एल से इस फ़ाइल को चढ़ाने",
        "action-writeapi": "लेखन ए॰पी॰आई का प्रयोग करने",
        "action-delete": "इस पृष्ठ को हटाने",
-       "action-deleterevision": "à¤\87स à¤\85वतरण à¤\95à¥\8b à¤¹à¤\9fानà¥\87",
+       "action-deleterevision": "à¤\85वतरण à¤¹à¤\9fायà¥\87à¤\82",
        "action-deletelogentry": "लॉग प्रविष्टियाँ को हटाए",
        "action-deletedhistory": "इस पृष्ठ के मिटे इतिहास को देखने",
+       "action-deletedtext": "हटाये गए अवतरण का पाठ देखें",
        "action-browsearchive": "हटाएँ गए पृष्ठों में खोजने",
        "action-undelete": "इस पृष्ठ को पुनर्स्थापित करने",
        "action-suppressrevision": "इस छिपे अवतरण को देखने और पुनर्स्थापित करने",
        "rcfilters-invalid-filter": "अमान्य फ़िल्टर",
        "rcfilters-empty-filter": "कोई सक्रिय फिल्टर नहीं। सभी योगदान दिखाए गए है।",
        "rcfilters-filterlist-title": "फिल्टर",
+       "rcfilters-filterlist-whatsthis": "यह क्या है?",
        "rcfilters-highlightbutton-title": "परिणाम रेखांकन करें",
        "rcfilters-highlightmenu-title": "रंग चुनें",
        "rcfilters-filterlist-noresults": "कोई फिल्टर नहीं पाया",
        "rcfilters-filter-editsbyself-description": "आपके द्वारा संपादित",
        "rcfilters-filter-editsbyother-label": "दूसरों के द्वारा संपादित",
        "rcfilters-filter-user-experience-level-newcomer-label": "अपरिचित",
+       "rcfilters-filter-user-experience-level-newcomer-description": "4 दिनों की गतिविधि और 10 सम्पादन से कम।",
        "rcfilters-filter-user-experience-level-learner-label": "शिक्षार्थियों",
+       "rcfilters-filter-user-experience-level-experienced-label": "अनुभवी सदस्य",
+       "rcfilters-filtergroup-automated": "स्वचालित योगदान",
        "rcfilters-filter-bots-label": "बॉट",
        "rcfilters-filter-humans-label": "मानव (बॉट नहीं)",
        "rcfilters-filter-humans-description": "मानव संपादक द्वारा किए गए संपादन।",
-       "rcfilters-filter-patrolled-label": "गश्त",
+       "rcfilters-filtergroup-reviewstatus": "पुनरीक्षण स्थिति",
+       "rcfilters-filter-patrolled-label": "परीक्षित",
+       "rcfilters-filter-unpatrolled-label": "अपरीक्षित",
+       "rcfilters-filter-unpatrolled-description": "परीक्षित चिन्हित न किए सम्पादन।",
        "rcfilters-filtergroup-significance": "महत्व",
        "rcfilters-filter-minor-label": "छोटा संपादन",
        "rcfilters-filter-major-label": "गैर-मामूली संपादन",
        "cant-move-to-user-page": "आपको किसी पन्नो को सदस्य पृष्ठ पर ले जाने की अनुमति नहीं है (सिवाय सदस्य उप पृष्ठ के)",
        "cant-move-category-page": "आपको श्रेणी प्रष्ठों को स्थानांतरित करने की अनुमति नहीं है।",
        "cant-move-to-category-page": "आपको किसी पृष्ठ को श्रेणी पृष्ठ पर स्थानांतरित करने की अनुमति नहीं है।",
+       "cant-move-subpages": "आपको उपपृष्ठों को स्थानांतरित करने की अनुमति नहीं है।",
        "namespace-nosubpages": "\"$1\" नामस्थान उपपृष्ठ की अनुमति नहीं देता है।",
        "newtitle": "नया शीर्षक:",
        "move-watch": "ध्यान रखें",
        "tags-actions-header": "क्रियाएं",
        "tags-active-yes": "हाँ",
        "tags-active-no": "नहीं",
-       "tags-source-extension": "à¤\8fà¤\95à¥\8dसà¤\9fà¥\87à¤\82शन द्वारा परिभाषित",
+       "tags-source-extension": "सà¥\89फà¥\8dà¤\9fवà¥\87यर द्वारा परिभाषित",
        "tags-source-manual": "उपयोगकर्ताओं और बॉट द्वारा नियमानुसार लागू",
        "tags-source-none": "अब प्रयोग में नहीं",
        "tags-edit": "सम्पादन",
        "pagelang-language": "भाषा",
        "pagelang-use-default": "डिफ़ॉल्ट भाषा का प्रयोग करें",
        "pagelang-select-lang": "भाषा चुनें",
+       "pagelang-reason": "कारण",
        "pagelang-submit": "भेजें",
        "right-pagelang": "पृष्ठ भाषा बदलें",
        "action-pagelang": "पृष्ठ भाषा बदलने",
        "mw-widgets-titleinput-description-new-page": "पृष्ठ अभी मौजूद नहीं है",
        "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित",
        "mw-widgets-categoryselector-add-category-placeholder": "श्रेणी जोड़ें...",
+       "mw-widgets-usersmultiselect-placeholder": "और जोड़ें...",
        "sessionmanager-tie": "एक साथ कई अनुरोध को नहीं मिला सकता: $1",
        "sessionprovider-generic": "$1 सत्र",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "कुकी-आधारित सत्र",
index 2af3f91..f5c2706 100644 (file)
@@ -45,7 +45,8 @@
                        "Bencoke",
                        "Máté",
                        "Wolf Rex",
-                       "BanKris"
+                       "BanKris",
+                       "Notramo"
                ]
        },
        "tog-underline": "Hivatkozások aláhúzása:",
        "rcfilters-invalid-filter": "Érvénytelen szűrő",
        "rcfilters-empty-filter": "Nincs aktív szűrő. Minden közreműködés látható.",
        "rcfilters-filterlist-title": "Szűrők",
+       "rcfilters-filterlist-whatsthis": "Mi ez?",
        "rcfilters-highlightmenu-title": "Válassz egy színt",
        "rcfilters-filterlist-noresults": "Nem található szűrő",
        "rcfilters-filter-registered-label": "Regisztrált",
index c005cf1..01f4ca5 100644 (file)
        "minoredit": "នេះជា​កំណែប្រែតិចតួចប៉ុណ្ណោះ",
        "watchthis": "តាមដាន​ទំព័រនេះ",
        "savearticle": "រក្សាទំព័រទុក",
+       "savechanges": "រក្សាទុកបន្លាស់ប្ដូរ",
        "preview": "មើលជាមុន",
        "showpreview": "បង្ហាញ​ការមើលជាមុន",
        "showdiff": "បង្ហាញ​បន្លាស់ប្ដូរ",
index 9b1c36b..2442f52 100644 (file)
        "botpasswords-label-delete": "삭제",
        "botpasswords-label-resetpassword": "비밀번호 재설정",
        "botpasswords-label-grants": "적용할 수 있는 부여:",
-       "botpasswords-help-grants": "각각 부여된 값은 목록에서 사용자 계정을 이미 갖고 있는 사용자 권한에 접근할 수 있는 권한을 줍니다. 자세한 정보는 [[Special:ListGrants|부여 표]]을 보세요.",
+       "botpasswords-help-grants": "사용자 계정에서 사용할 수 있는 권한을 부여합니다. 이 권한을 부여한다고 해서 원래 가지고 있지 않던 권한이 부여되는 것은 아닙니다. 자세한 정보는 [[Special:ListGrants|부여 표]]을 보세요.",
        "botpasswords-label-grants-column": "승인됨",
        "botpasswords-bad-appid": "\"$1\"이라는 봇 이름은 유효하지 않습니다.",
        "botpasswords-insert-failed": "\"$1\" 봇 이름을 추가하는데 실패했습니다. 이미 등록되지 않았는지 확인하기 바랍니다.",
        "page_first": "처음",
        "page_last": "마지막",
        "histlegend": "차이 선택: 비교하려는 판의 라디오 상자를 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />\n설명: <strong>({{int:cur}})</strong> = 최신 판과 비교, <strong>({{int:last}})</strong> = 이전 판과 비교, <strong>{{int:minoreditletter}}</strong>= 사소한 편집",
-       "history-fieldset-title": "역사 찾아보기",
+       "history-fieldset-title": "특정판 검색",
        "history-show-deleted": "특정판이 삭제된 것만",
        "histfirst": "오래됨",
        "histlast": "최신",
        "saveusergroups": "{{GENDER:$1|사용자}} 권한 저장",
        "userrights-groupsmember": "현재 권한:",
        "userrights-groupsmember-auto": "자동으로 부여된 권한:",
-       "userrights-groups-help": "이 사용자의 권한을 바꿀 수 있습니다.\n* 사용자는 체크 표시가 있는 권한을 갖습니다.\n* 사용자는 체크 표시가 없는 권한을 갖지 않습니다.\n* <nowiki>*</nowiki>표시는 권한을 주거나 거두는 것 중 하나만 할 수 있다는 뜻입니다.",
+       "userrights-groups-help": "이 사용자의 권한을 바꿀 수 있습니다.\n* 사용자는 체크 표시가 있는 권한을 갖습니다.\n* 사용자는 체크 표시가 없는 권한을 갖지 않습니다.\n* <nowiki>*</nowiki>표시는 권한을 주거나 거두는 것 중 하나만 할 수 있다는 뜻입니다.\n* <nowiki>#</nowiki> 표시는 권한의 만료일을 늦출 수만 있다는 뜻입니다; 만료일을 앞당길 수는 없습니다.",
        "userrights-reason": "이유:",
        "userrights-no-interwiki": "다른 위키의 사용자 권한을 바꿀 권한이 없습니다.",
        "userrights-nodatabase": "데이터베이스 $1이 존재하지 않거나 로컬에 있지 않습니다.",
        "userrights-expiry-options": "1일:1 day,1주일:1 week,1개월:1 month,3개월:3 months,6개월:6 months,1년:1 year",
        "userrights-invalid-expiry": "그룹 \"$1\"의 만료 시간이 유효하지 않습니다.",
        "userrights-expiry-in-past": "그룹 \"$1\"의 만료 시간이 과거입니다.",
+       "userrights-cannot-shorten-expiry": "\"$1\" 권한의 만료일을 앞당길 수 없습니다. 권한을 추가하고 회수할 수 있는 권한을 가진 사용자만 권한의 만료일을 앞당길 수 있습니다.",
        "userrights-conflict": "사용자 권한 바꾸기가 충돌합니다! 바뀜을 검토하고 확인하세요.",
        "group": "그룹:",
        "group-user": "사용자",
        "rcfilters-filter-editsbyother-label": "다른 사용자의 편집",
        "rcfilters-filter-editsbyother-description": "다른 사용자에 의한 편집 (당신의 편집이 아님).",
        "rcfilters-filtergroup-userExpLevel": "경험 수준 (등록된 사용자 전용)",
-       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "ì\9d´ í\95\84í\84°ë\8a\94 ë\93±ë¡\9d ì\82¬ì\9a©ì\9e\90ë§\8c ì°¾ê¸° ë\95\8c문ì\97\90 ë¹\84í\99\9cì\84±í\99\94ë\90\98ì\96´ ì\9e\88ì\9c¼ë¯\80ë¡\9c \"미ë\93±ë¡\9d\" í\95\84í\84°ë\8a\94 í\9a¨ê³¼ë¥¼ ì·¨ì\86\8cí\95©ë\8b\88ë\8b¤.",
-       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "\"미ë\93±ë¡\9d\" í\95\84í\84°ë\8a\94 í\95\98ë\82\98 ì\9d´ì\83\81ì\9d\98 ê²½í\97\98 í\95\84í\84°ì\99\80 ì¶©ë\8f\8cí\95©ë\8b\88ë\8b¤. ê²½í\97\98 í\95\84í\84°ë\8a\94 ë\93±ë¡\9dë\90\9c ì\82¬ì\9a©ì\9e\90ë§\8c ì°¾ì\8aµë\8b\88ë\8b¤. ì¶©ë\8f\8cë\90\98ë\8a\94 í\95\84í\84°ë\8a\94 ì\9c\84ì\97\90ì\84\9c ë¹\84í\99\9cì\84±í\99\94ë\90\9c ê²\83ì\9c¼ë¡\9c 표시됩니다.",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "ê²½í\97\98 í\95\84í\84°ë\8a\94 ë\93±ë¡\9dë\90\9c ì\82¬ì\9a©ì\9e\90ë§\8cì\9d\84 ê²\80ì\83\89í\95\98기 ë\95\8c문ì\97\90 ì\9d´ í\95\84í\84°ë\8a\94 \"ë\93±ë¡\9d ì\95\88 ë\90¨\" í\95\84í\84°ì\99\80 ì¶©ë\8f\8cí\95©ë\8b\88ë\8b¤.",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "\"ë\93±ë¡\9d ì\95\88 ë\90¨\" í\95\84í\84°ë\8a\94 í\95\98ë\82\98 ì\9d´ì\83\81ì\9d\98 ê²½í\97\98 í\95\84í\84°ì\99\80 ì¶©ë\8f\8cí\95©ë\8b\88ë\8b¤. ê²½í\97\98 í\95\84í\84°ë\8a\94 ë\93±ë¡\9dë\90\9c ì\82¬ì\9a©ì\9e\90ë§\8c ì°¾ì\8aµë\8b\88ë\8b¤. ì¶©ë\8f\8cë\90\98ë\8a\94 í\95\84í\84°ë\8a\94 ì\9c\84ì\9d\98 í\99\9cì\84±í\99\94ë\90\9c í\95\84í\84° ëª©ë¡\9dì\97\90 표시됩니다.",
        "rcfilters-filter-user-experience-level-newcomer-label": "신규 사용자",
        "rcfilters-filter-user-experience-level-newcomer-description": "10회 미만의 편집 및 4일 미만의 활동.",
        "rcfilters-filter-user-experience-level-learner-label": "학습자",
        "rcfilters-filter-bots-description": "자동 도구를 이용한 편집.",
        "rcfilters-filter-humans-label": "사람 (봇이 아님)",
        "rcfilters-filter-humans-description": "사람이 한 편집.",
+       "rcfilters-filtergroup-reviewstatus": "검토 상태",
        "rcfilters-filter-patrolled-label": "점검됨",
+       "rcfilters-filter-patrolled-description": "검토한 것으로 표시된 편집들.",
        "rcfilters-filter-unpatrolled-label": "점검 안 됨",
+       "rcfilters-filter-unpatrolled-description": "검토한 것으로 표시되지 않은 편집들.",
        "rcfilters-filtergroup-significance": "의미",
        "rcfilters-filter-minor-label": "사소한 편집",
+       "rcfilters-filter-minor-description": "기여자가 사소한 기여로 표시한 편집.",
        "rcfilters-filter-major-label": "사소하지 않은 편집",
        "rcfilters-filter-major-description": "사소한 편집으로 표시되지 않은 편집.",
        "rcfilters-filtergroup-changetype": "차이 종류",
        "rcfilters-filter-categorization-label": "분류 차이",
        "rcfilters-filter-categorization-description": "분류에서 추가되거나 제거되는 페이지의 기록.",
        "rcfilters-filter-logactions-description": "관리적 조치, 계정 만들기, 페이지 삭제, 업로드...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "특정한 유형의 변경사항을 \"사소한 편집\"으로 지정할 수 없기 때문에 \"사소한 편집\" 필터는 하나 이상의 변경사항 유형 필터와 충돌합니다. 충돌되는 필터들은 위의 사용 중인 필터 영역에 표시됩니다.",
+       "rcfilters-hideminor-conflicts-typeofchange": "특정한 종류의 변경사항은 \"사소한 편집\"으로 지정할 수 없으므로 이 필터는 다음 유형의 변경사항 필터와 충돌합니다: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "이 유형의 변경사항 필터는 \"사소한 편집\" 필터와 충돌합니다. 특정한 종류의 변경사항은 \"사소한 편집\"으로 지정할 수 없습니다.",
        "rcnotefrom": "아래는 <strong>$3, $4</strong>부터 시작하는 {{PLURAL:$5|바뀜이 있습니다}}. (최대 <strong>$1</strong>개가 표시됨)",
        "rclistfrom": "$3 $2부터 시작하는 새로 바뀐 문서 보기",
        "rcshowhideminor": "사소한 편집 $1",
index ed61f0c..ae8a516 100644 (file)
        "page_first": "éischt",
        "page_last": "lescht",
        "histlegend": "Fir d'Ännerungen unzeweisen: Klickt déi zwou Versiounen un, déi solle verglach ginn.<br />\n*(aktuell) = Ënnerscheed mat der aktueller Versioun,\n*(lescht) = Ënnerscheed mat der aler Versioun,\n*k = Kleng Ännerung.",
-       "history-fieldset-title": "An de Versioune sichen",
+       "history-fieldset-title": "No Versioune sichen",
        "history-show-deleted": "Nëmme geläscht Versiounen",
        "histfirst": "eelst",
        "histlast": "neist",
index dfe50d3..f933f87 100644 (file)
        "title-invalid-interwiki": "Ahitana rohy interwiki tsy azo ampiasaina amin'ny lohateny ny pejy angatahana.",
        "title-invalid-talk-namespace": "Mampatsiahy pejin-dresaka tsy misy ilay pejy angatahana.",
        "title-invalid-characters": "Ahitana soratra tsy azo ekena ny lohatenim-pejy angatahana: \"$1\".",
+       "title-invalid-relative": "Manana lalana tsy mahaleotena ilay lohateny. Tsy manan-kery ny lohatenim-pejy misy mamana tsy mahaleotena (./, ../) satria tsy ho takatra izy ireo rehefa amin'ny mpitetin'ny mpampiasa sasany.",
+       "title-invalid-magic-tilde": "Ahitana filaharana majika tsy azo raisina ny lohatenim-pejy angatahana (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Lava loatra ny lohatenim-pejy angatahana. Tsy mahazo ho lava noho $1 $1{{PLURAL:$1|}} ôktety ilay izy amin'ny fikaodiana UTF-8.",
+       "title-invalid-leading-colon": "Ahitana teboka roa tsy azo raisina ny lohatenim-pejy angatahana.",
        "perfcached": "Ao amin'ny voatakona ireo data manaraka ireo ary mety tsy voavao. $1{{PLURAL:}} ihany no isan'ireo zavatra voatahiry ao amin'ny voatakona",
        "perfcachedts": "Ao amin'ny voatakona (cache) ny data aseho, ary tamin'ny $1 izy no navaozina farany. $4{{PLURAL:}} no isan'ny valim-pikarohana ao amin'ilay voatakona.",
        "querypage-no-updates": "Amin'izao fotoana izao dia tsy havaozina ny votoatin'ity pejy ity. Noho izany dia tsy mitaratra ny tena zava-misy ny votoatiny ato.",
        "grant-group-high-volume": "Manao zavatra haingana",
        "grant-group-customization": "Fikirakirana ary safidy",
        "grant-group-administration": "Hanao asam-pandrindrana",
+       "grant-group-private-information": "Hijery ny angona tsy sarababembahoaka momba anao",
        "grant-group-other": "Manao hetsika maro samihafa",
        "grant-blockusers": "Manakana sy manala sakan'ny mpikambana",
        "grant-createaccount": "Hamorona kaonty",
        "rcfilters-invalid-filter": "Sivana tsy azo raisina",
        "rcfilters-empty-filter": "Tsy misy sivana miasa. Aseho avokoa ireo fandraisan'anjara.",
        "rcfilters-filterlist-title": "Sivana",
+       "rcfilters-filterlist-whatsthis": "Inona ity?",
        "rcfilters-filterlist-feedbacklink": "Mamoaka hevitra mikasika ny sivana vaovao (beta)",
        "rcfilters-highlightbutton-title": "Hampibaribary ny valiny",
        "rcfilters-highlightmenu-title": "Hisafidy loko",
        "rcfilters-highlightmenu-help": "Misafidy loko hampanabaribariana ilay tondro",
        "rcfilters-filterlist-noresults": "Tsy nahitana sivana",
+       "rcfilters-noresults-conflict": "Tsy nahitana valiny satria tsy mifanaraka ny mason-tsivana",
        "rcfilters-filtergroup-registration": "Fisoratan'ny mpikambana",
        "rcfilters-filter-registered-label": "Nisoratra anarana",
        "rcfilters-filter-registered-description": "Mpanova tafiditra.",
        "rcfilters-filter-bots-description": "Fiovana nataon'ny rôbô aotômatika.",
        "rcfilters-filter-humans-label": "Olona (tsy rôbô)",
        "rcfilters-filter-humans-description": "Fiovana nataon'ny olombelona mpikambana.",
+       "rcfilters-filter-patrolled-label": "Voatsidika",
+       "rcfilters-filter-patrolled-description": "Fiovana nomarihana ho voatsidika.",
+       "rcfilters-filter-unpatrolled-label": "Tsy mbola voatsidika",
+       "rcfilters-filter-unpatrolled-description": "Fiovana tsy voamarika ho voatsidika.",
        "rcfilters-filtergroup-significance": "Dikany",
        "rcfilters-filter-minor-label": "Fiovana madinika",
        "rcfilters-filter-minor-description": "Fiovana nataon'ny tompony ho madinika.",
        "uploaddisabledtext": "Tsy afaka andefasana rakitra aloha eto amin'ity wiki ity.",
        "php-uploaddisabledtext": "Ny fampidiran-drakitra dia tsy ampiasaina amin'ny PHP.\nMarino ny option configuration file_uploads.",
        "uploadscripted": "\nMisy kialo HTML na fango script mety tsy ho hain'ny navigateur sasany haseho ity rakitra ity.",
+       "uploaded-script-svg": "Zavatra azo atao ho azy \"$1\" ao amin'ny rakitra SVG nampiakarina.",
+       "uploaded-hostile-svg": "Nahitana CSS tsy azo antoka ao amin'ny zava-pisehoan'ny rakitra SVG nampiakarina.",
        "uploadscriptednamespace": "ahitana valan'anarana \"<nowiki>$1</nowiki>\" ny rakitra SVG.",
        "uploadinvalidxml": "Tsy afaka vakiana ny XML tao anatin'ilay rakitra nafaranao.",
        "uploadvirus": "Misy viriosy io rakitra io! Toy izao ny antsipirihany: $1",
        "uploadstash-badtoken": "Tsy navokatra ny fampandefasana ilay tao, mety efa lany daty angamba ny fampahalalam-pamantarana anao.\nAvereno fanindroany.",
        "uploadstash-errclear": "Tsy navokatra ny famafana rakitra.",
        "uploadstash-refresh": "Vaozina ny lisi-drakitra",
+       "uploadstash-thumbnail": "haneho sarikely",
        "img-auth-accessdenied": "Tsy afa-mankao",
        "img-auth-nopathinfo": "Tsy misy PATH_INFO.\nTsy voaparametatra ny lohamilinao hampita io fampahalalàna io.\nMety mampiasa CGI angamba ilay lohamilina ka tsy mahazaka an'i img_auth\nVangio ny https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "img-auth-notindir": "Ny lalana nangatahana dia tsy ny petra-drakitra nokaonfigiorena.",
        "apisandbox-submit": "Hanao hataka",
        "apisandbox-reset": "Diovina",
        "apisandbox-retry": "Andramana indray",
+       "apisandbox-no-parameters": "Tsy manana parametatra ity module API ity.",
        "apisandbox-helpurls": "Rohim-panoroana",
        "apisandbox-examples": "Ohatra",
        "apisandbox-dynamic-parameters": "Parametatra miampy",
        "apisandbox-sending-request": "Mandefa hataka API...",
        "apisandbox-loading-results": "Mandray valiny API...",
        "apisandbox-results-error": "Nisy hadisoana tamin'ny fakàna ny valin-kataka API: $1.",
+       "apisandbox-request-format-url-label": "Tohin-tsora-kataka URL",
        "apisandbox-request-url-label": "Hataka URL:",
+       "apisandbox-request-json-label": "Hangataka JSON:",
        "apisandbox-request-time": "Fotoana nangatahana{{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Ahitsio ny token ary alefaso indray",
        "apisandbox-results-fixtoken-fail": "Tsy afaka naka ny token \"$1\".",
        "apisandbox-alert-page": "Tsy ekena ny votoatin'ny saha ato amin'ity pejy ity.",
+       "apisandbox-alert-field": "Tsy azo raisina ny sandan'ity saha ity.",
+       "apisandbox-continue": "Tohizana",
+       "apisandbox-continue-clear": "Diovina",
+       "apisandbox-multivalue-all-namespaces": "$1 (anaran-tsehatra rehetra)",
+       "apisandbox-multivalue-all-values": "$1 (sanda rehetra)",
        "booksources": "boky tsiahy",
        "booksources-search-legend": "hikaroka anatin'ny boky todika",
        "booksources-search": "Fikarohana",
        "booksources-text": "Ity misy lisitra maneho ny rohy makany amin'ny sehatra mivarotra boky vaovao sy efa vaky ary mety ahitanao fampahalalàna momba ny boky sy soratra notadiavinao :",
        "booksources-invalid-isbn": "Ny ISBN nomena dia mety diso ; marino raha diso ianao teo am-pandikanana ny loharano fotony.",
+       "magiclink-tracking-rfc": "Pejy mampiasa rohy majika RFC",
        "specialloguserlabel": "Mpikambana nanao :",
        "speciallogtitlelabel": "Tanjona (lohateny na mpikambana) :",
        "log": "Tatitr’asa",
        "changecontentmodel-reason-label": "Antony :",
        "changecontentmodel-submit": "Ovaina",
        "changecontentmodel-success-title": "Niova ny môdelim-botoatiny",
+       "changecontentmodel-emptymodels-title": "Tsy nahitana môdelim-botoatiny azo ampiasaina",
+       "changecontentmodel-emptymodels-text": "Tsy afaka avadika ho karazana na inona na inona [[:$1]].",
+       "log-name-contentmodel": "Laogim-panovana môdelim-botoatiny",
        "logentry-contentmodel-change-revertlink": "mamerina",
        "logentry-contentmodel-change-revert": "mamerina",
        "protectlogpage": "Laogim-piarovana",
        "sp-contributions-username": "Adiresy IP na anaram-pikambana :",
        "sp-contributions-toponly": "Fiovana izay farany ihany no aseho",
        "sp-contributions-newonly": "Fiovana izay namorom-pejy ihany no aseho",
+       "sp-contributions-hideminor": "Hanafina fiovana kely",
        "sp-contributions-submit": "Hikaroka",
        "whatlinkshere": "Pejy mirohy eto",
        "whatlinkshere-title": "Pejy mirohy any amin'i « $1 »",
        "ipb-unblock": "Hanala ny sakan'ny mpikambana na adiresy IP",
        "ipb-blocklist": "Hijery ny sakana efa misy",
        "ipb-blocklist-contribs": "Fandraisan'anjaran'i $1",
+       "ipb-blocklist-duration-left": "$1 sisa",
        "unblockip": "Esory ny sakana amin'io mpikambana io",
        "unblockiptext": "\nAmpiasao ity fisy eto ambany ity hanalana ny sakana\nmihatra amin'ny adiresy IP na solonanarana iray.",
        "ipusubmit": "Esory ny sakana",
        "tooltip-ca-nstab-category": "Hijery ny pejin'ilay sokajy",
        "tooltip-minoredit": "Mariho ho fanovana madinika ihany",
        "tooltip-save": "Tehirizo ny fanovana",
+       "tooltip-publish": "Hamoaka ny fiovana",
        "tooltip-preview": "Topazy maso ny fanovana nataonao, iangaviana ianao mba hijery tsipalotra mialoha ny fitahirizana ny fanovana!",
        "tooltip-diff": "Asehoy izay novainao tamin'ny lahatsoratra.",
        "tooltip-compareselectedversions": "Jereo ny fahasamihafana amin'ireo votoatin'ny pejy anankiroa ireo.",
        "patrol-log-page": "Laogin'ny fanovana voamarina",
        "patrol-log-header": "Ity dia laogy mikasikan'ny fanovana voamarina.",
        "log-show-hide-patrol": "$1 ny laogy mikasikan'ny versiona voamarina",
+       "log-show-hide-tag": "$1 laogim-balizy",
        "confirm-markpatrolled-button": "OK",
        "deletedrevision": "Fanovana an'i $1 taloha voafafa.",
        "filedeleteerror-short": "Tsi-fetezana teo am-pamafàna ilay rakitra : $1",
        "exif-flash-redeye-1": "Fanoherana ny fisiana maso mena",
        "exif-focalplaneresolutionunit-2": "Posy",
        "exif-sensingmethod-1": "Tsy voafaritra",
+       "exif-scenecapturetype-0": "Ara-penitra",
+       "exif-scenecapturetype-1": "Mandry",
+       "exif-scenecapturetype-2": "Mitsangana",
+       "exif-scenecapturetype-3": "Alina",
        "exif-gaincontrol-0": "Tsy misy",
        "exif-gaincontrol-1": "Fahazoana miabo kely",
        "exif-gaincontrol-2": "Fitomboana miabo be",
        "exif-saturation-2": "Ambony",
        "exif-sharpness-0": "Tsotra",
        "exif-sharpness-1": "Malefaka",
+       "exif-sharpness-2": "Mahery",
        "exif-subjectdistancerange-0": "Tsy fantatra",
        "exif-subjectdistancerange-1": "Makrô",
        "exif-subjectdistancerange-2": "Fijerena akaiky",
        "exif-gpslatitude-s": "Atsimo",
        "exif-gpslongitude-e": "Atsinanana",
        "exif-gpslongitude-w": "Andrefana",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|}}metatra eo ambonin'ny lentan'ny ranomasina",
+       "exif-gpsaltitude-below-sealevel": "$1 metatra{{PLURAL:$1|}} eo ambanin'ny lentan-dranomasina",
        "exif-gpsstatus-a": "Am-pandrefesana",
        "exif-gpsmeasuremode-2": "Fandrefesana 2D",
        "exif-gpsmeasuremode-3": "Fandrefesana 3D",
        "exif-objectcycle-b": "Sady maraina no hariva",
        "exif-gpsdirection-t": "Tena avaratra",
        "exif-gpsdirection-m": "Avaratra arak'andriamby",
+       "exif-ycbcrpositioning-1": "Miafovoany",
+       "exif-ycbcrpositioning-2": "Co-sited",
        "exif-dc-contributor": "Mpandray anjara",
        "exif-dc-date": "Daty",
        "exif-dc-publisher": "Mpamoaka",
+       "exif-dc-relation": "Media misy ifandraisana",
        "exif-dc-rights": "Zo",
        "exif-dc-source": "Haino aman-jery niaviana",
        "exif-dc-type": "Karazana baino aman-jery",
        "confirm-watch-top": "Hanaraka ity pejy ity?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Hanala ity pejy ity amin'ny lisitry ny pejy arahinao?",
+       "confirm-rollback-button": "OK",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← pejy nialoha",
        "imgmultipagenext": "pejy manaraka →",
        "imgmultigo": "Andao !",
        "imgmultigoto": "Handeha any amin'ny pejy $1",
        "img-lang-default": "(fiteny tsipalotra)",
+       "img-lang-info": "Haneho ity sary ity ho $1. $2",
        "img-lang-go": "Alefa",
        "ascending_abbrev": "mihak.",
        "descending_abbrev": "mihid.",
        "autosumm-replace": "Votoatiny novaina ho « $1 »",
        "autoredircomment": "Pejy fihodinana mankany [[$1]]",
        "autosumm-new": "Pejy voaforona amin'ny « $1 »",
+       "autosumm-newblank": "Namorona pejy fotsy",
        "lag-warn-normal": "Ny fanovana vaovao nohon'ny $1 segondra {{PLURAL:}} dia tsy hiseho eo amin'ity lisitra ity.",
        "lag-warn-high": "Noho ny hataraiky ny lohamilin'ny banky angona, tsy hiseho eto ny fanovana natao tao anatin'ny fotoana latsaky ny $1 segondra{{PLURAL:}}.",
        "watchlistedit-normal-title": "Hanova ny lisitra ny pejy arahako maso",
        "watchlistedit-raw-titles": "Lohateny :",
        "watchlistedit-raw-submit": "Havaozina ny lisitra",
        "watchlistedit-raw-done": "Voavao ny lisitrao.",
+       "watchlistedit-clear-title": "Handio ny lisitra arahanao",
+       "watchlistedit-clear-legend": "Handio ny lisitra arahanao",
+       "watchlistedit-clear-explain": "Ho esorina amin'ny lisitry ny pejy arahanao ny lohateny rehetra",
+       "watchlistedit-clear-titles": "Lohateny:",
        "watchlisttools-view": "pejy arahako maso",
        "watchlisttools-edit": "Jereo sy ovao ny lisitra ny pejy fanaraha-maso",
        "watchlisttools-raw": "Ovay ilay pejy arahako maso amizao",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|resaka]])",
+       "timezone-local": "An-toerana",
        "duplicate-defaultsort": "'''Tandremo''' : manitsaka ny sort key taloha \"$1\" ilay sort key ankehitriny \"$2\".",
        "version": "Versiona",
        "version-extensions": "Fanitarana nampidirina",
        "version-other": "Samihafa",
        "version-hook-subscribedby": "Nalefan'i",
        "version-version": "($1)",
+       "version-no-ext-name": "[tsy misy anarana]",
        "version-license": "Lisansa Mediawiki",
        "version-ext-license": "Fahazoan-dalana",
        "version-ext-colheader-name": "Fanitarana",
        "tags-deactivate-submit": "Aza alefa",
        "tags-edit-title": "Hanova balizy",
        "tags-edit-manage-link": "Hikirakira balizy",
+       "tags-edit-existing-tags": "Balizy misy:",
+       "tags-edit-existing-tags-none": "<em>Tsy misy</em>",
        "tags-edit-new-tags": "Balizy vaovao:",
        "tags-edit-add": "Ampiana ireo balizy ireo:",
        "tags-edit-remove": "Hanala ireo balizy ireo:",
        "htmlform-cloner-create": "Hanampy be kokoa",
        "htmlform-cloner-delete": "Esorina",
        "htmlform-cloner-required": "Sanda iray farafahakeliny no ilaina",
+       "htmlform-date-placeholder": "TTTT-VV-AA",
+       "htmlform-time-placeholder": "HH:MM:SS",
+       "htmlform-datetime-placeholder": "TTTT-VV-AA HH:MM:SS",
+       "htmlform-date-invalid": "Tsy daty fantatra ny sanda nampidirinao. Andramo ampiasina ny fipetraka TTTT-VV-AA.",
        "htmlform-title-badnamespace": "Tsy ao amin'i anaran-tsehatra \"{{ns:$2}}\" i [[:$1]].",
        "htmlform-title-not-creatable": "Lohatenim-pejy tsy azo foronina \"$1\"",
        "htmlform-title-not-exists": "Tsy misy $1.",
        "logentry-upload-upload": "Nampiditra an'i $3 i $1{{GENDER:$2}}",
        "rightsnone": "(tsy misy)",
        "feedback-adding": "Manampy ny fahenoan-kevitra amin'ilay pejy...",
+       "feedback-back": "Hiverina",
        "feedback-bugnew": "Efa nomariniko. Hitory baogy iray",
        "feedback-cancel": "Foanana",
        "feedback-close": "Vita",
+       "feedback-dialog-title": "Handefa resaka",
        "feedback-error1": "Hadisoana: Valiny avy amin'ny API tsy fantatra",
        "feedback-error2": "Hadisoana: Tsy voaòva",
        "feedback-error3": "Hadisoana: Tsy nisy valiny avy amin'ny API",
        "feedback-subject": "Lohahevitra:",
        "feedback-submit": "Alefa",
        "feedback-thanks": "Misaotra! lanefa tany amin'ilay pejy ''[$2 $1]'' ilay fanehoan-kevitrao.",
+       "feedback-thanks-title": "Misaotra indrindra!",
        "feedback-useragent": "User agent:",
        "searchsuggest-search": "Hikaroha eto amin'i {{SITENAME}}",
        "searchsuggest-containing": "misy...",
        "api-error-stashfailed": "Hadisoana anaty: Tsy nahomby ny fitahirizana ilay rakitra vonjimaika ilay lohamilina.",
        "api-error-unknown-warning": "Fampitandremana tsy fantatra : ''$1''.",
        "api-error-unknownerror": "Hadisoana tsy fantatra : ''$1''.",
+       "duration-seconds": "$1 segondra{{PLURAL:$1|}}",
+       "duration-minutes": "$1 minitra{{PLURAL:$1|}}",
+       "duration-hours": "$1 ora{{PLURAL:$1|}}",
+       "duration-days": "$1 andro{{PLURAL:$1|}}",
+       "duration-weeks": "$1{{PLURAL:$1|}} herinandro",
+       "duration-years": "$1 taona{{PLURAL:$1|}}",
+       "duration-decades": "folotaona{{PLURAL:$1|}} $1",
+       "duration-centuries": "taonjato $1{{PLURAL:$1|}}",
+       "limitreport-walltime": "Tena fotoam-pampiasana",
+       "limitreport-walltime-value": "$1 segondra{{PLURAL:$1|}}",
+       "expand_templates_output": "Valiny",
+       "expand_templates_xml_output": "Famoahana XML",
+       "expand_templates_html_output": "Famoahana HTML",
+       "expand_templates_ok": "OK",
+       "expand_templates_remove_comments": "Hanala resaka",
+       "expand_templates_preview": "Topi-maso",
+       "pagelang-name": "Pejy",
+       "pagelang-language": "Fiteny",
+       "pagelang-use-default": "Hampiasan ny fiteny raha tsy misy",
+       "pagelang-select-lang": "Hisafidy teny",
+       "pagelang-reason": "Antony",
+       "pagelang-submit": "Alefa",
+       "right-pagelang": "Hanova ny fitenin'ny pejy",
+       "action-pagelang": "hanova ny fitenin'ny pejy",
+       "mediastatistics": "Statistikan'ny haino aman-jery",
+       "mediastatistics-table-mimetype": "Karazana MIME",
+       "mediastatistics-table-extensions": "Itatra azo atao",
+       "mediastatistics-table-count": "Isan'ny rakitra",
+       "mediastatistics-header-unknown": "Tsy fantatra",
+       "mediastatistics-header-bitmap": "Sary bitmap",
+       "mediastatistics-header-drawing": "Sary (sary vektôrialy)",
+       "mediastatistics-header-audio": "Feo",
+       "mediastatistics-header-video": "Horonantsary",
+       "mediastatistics-header-multimedia": "Haino aman-jery be harena",
+       "mediastatistics-header-office": "Birao",
+       "mediastatistics-header-text": "Soratra",
+       "mediastatistics-header-executable": "Azo alefa",
+       "mediastatistics-header-total": "Rakitra rehetra",
        "special-characters-group-latin": "latina",
        "special-characters-group-latinextended": "latina nitarina",
        "special-characters-group-ipa": "AAI",
index 949cbca..1f1e6de 100644 (file)
        "searchprofile-articles": "Возымо лаштык-влак",
        "searchprofile-images": "Мультимедий",
        "searchprofile-everything": "Чыла",
-       "searchprofile-advanced": "Кумдарак",
+       "searchprofile-advanced": "Кумда кычалмаш",
        "searchprofile-articles-tooltip": "Кычалмаш $1ште",
        "searchprofile-images-tooltip": "Файл-влакым кычалмаш",
        "searchprofile-everything-tooltip": "Чыла лаштык-влакыште кычалаш (каҥашымаш лаштык-влакыштат)",
        "search-nonefound": "Тыйын йодышет почеш нимо муалтын огыл",
        "powersearch-legend": "Сайынрак кычалаш",
        "powersearch-ns": "Кычалаш тиде лӱм-влакын кумдыкышт-влакыште:",
-       "powersearch-togglelabel": "Сайлаш:",
+       "powersearch-togglelabel": "Ð\9eйÑ\8bÑ\80аш:",
        "powersearch-toggleall": "Чыла",
        "powersearch-togglenone": "Нимо",
        "preferences": "Келыштарымаш",
        "tag-filter": "[[Special:Tags|Метке]] фильтр:",
        "logentry-delete-delete": "$1 {{GENDER:$2|шӧрен|шӧрен}} лаштыкым $3",
        "logentry-newusers-create": "Пайдаланыше {{GENDER:$2}} $1 лаштыкым ыштен.",
-       "searchsuggest-search": "{{SITENAME}} сайтыште кычалаш",
+       "searchsuggest-search": "кычалаш",
        "expand_templates_ok": "Йӧра",
        "expand_templates_preview": "Ончылгоч ончымаш"
 }
index 79cd582..9371f3f 100644 (file)
        "page_first": "прв",
        "page_last": "последен",
        "histlegend": "Разлика помеѓу преработките: Означете ги преработките што сакате да ги споредите и притиснете на Enter или копчето на дното од страницата.<br />\nЛегенда: '''({{int:cur}})''' = разлика со последна преработка, '''({{int:last}})''' = разлика со претходна преработка, '''{{int:minoreditletter}}''' = ситна промена.",
-       "history-fieldset-title": "Ð\9fÑ\80еглед Ð½Ð° Ð¸Ñ\81Ñ\82оÑ\80иÑ\98аÑ\82а",
+       "history-fieldset-title": "Ð\9fÑ\80ебаÑ\80аÑ\98 Ð¿Ñ\80еÑ\80абоÑ\82ки",
        "history-show-deleted": "Само избришани преработки",
        "histfirst": "најстари",
        "histlast": "најнови",
        "rcfilters-filter-categorization-description": "Записи од ставање на страници во категории или нивно отстранување од нив.",
        "rcfilters-filter-logactions-label": "Заведени дејства",
        "rcfilters-filter-logactions-description": "Административни постапки, создавања на сметки, бришења на страници, подигања...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Филтерот „Ситни уредувања“ е спротиставен на еден или повеќе од филтрите за видови измена, бидејќи извеси видови не можат да се означат како ситни. Спротиставените филтри се означени во делот Неактивни филтри погоре.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Извезни видови промени не можат да се означат како „ситни“, па затоа овој филтер е во спротиставеност со следниве филтри за видови промени: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Овој филтер за видови промени е во спротиставеност со филтерот „Ситни уредувања“. Извсни видови промени не можат да се означат како „ситни“.",
        "rcnotefrom": "Подолу {{PLURAL:$5|е прикажана промената|се прикажани промените}} почнувајќи од <strong>$3, $4</strong>  (се прикажуваат до <b>$1</b>).",
        "rclistfrom": "Прикажи нови промени почнувајќи од $3 $2",
        "rcshowhideminor": "$1 ситни промени",
index 864bdeb..a6ac26c 100644 (file)
        "login": "सनोंद-प्रवेश(लॉग-ईन)",
        "login-security": "तुमची ओळख पटवा",
        "nav-login-createaccount": "सनोंद-प्रवेश / सदस्यखाते उघडा",
-       "userlogin": "सनोंद-प्रवेश करा /सदस्यखाते उघडा",
-       "userloginnocreate": "सनोंद-प्रवेश",
        "logout": "सनोंद-निर्गम",
        "userlogout": "सनोंद-निर्गम",
        "notloggedin": "आपण सनोंद-प्रवेशित नाहीत",
        "userlogin-noaccount": "आपले खाते नाही?",
        "userlogin-joinproject": "{{SITENAME}}मध्ये सहभागी व्हा",
-       "nologin": "आपले सदस्यखाते नाही काय? $1.",
-       "nologinlink": "सदस्यखाते तयार करा",
        "createaccount": "नवीन खाते तयार करा",
-       "gotaccount": "पूर्वीचे खाते आहे? $1.",
-       "gotaccountlink": "सनोंद-प्रवेश करा",
-       "userlogin-resetlink": "सनोंद-प्रवेश तपशील विसरला असाल तर येथे टिचकी मारा.",
        "userlogin-resetpassword-link": "आपला परवलीचा शब्द विसरलात?",
        "userlogin-helplink2": "सनोंद प्रवेशासंबंधी साहाय्य",
        "userlogin-loggedin": "आपण पुर्वीच {{GENDER:$1|$1}} म्हणून सनोंद प्रवेशित आहात.वेगळ्या सदस्यनावाने सनोंद प्रवेशासाठी खालील आवेदन वापरा.",
        "createacct-another-email-ph": "आपला विपत्रपत्ता (ई-मेल) टाका",
        "createaccountmail": "तात्पुरता अनियत (रॅन्डम) परवलीचा शब्द तयार करून तो खाली नमूद विपत्रपत्त्यावर पाठवा",
        "createacct-realname": "खरे नाव (ऐच्छिक)",
-       "createaccountreason": "कारण:",
        "createacct-reason": "कारण",
        "createacct-reason-ph": "आपण दुसरे खाते कां बनवीत आहात",
        "createacct-submit": "आपले खाते निर्माण करा",
        "rcfilters-filter-editsbyother-label": "इतरांची संपादने",
        "rcfilters-filter-editsbyother-description": "इतर सदस्यांनी तयार केलेली संपादने (आपण नाही).",
        "rcfilters-filtergroup-userExpLevel": "अनुभवाचा स्तर (फक्त नोंदणीकृत सदस्यांसाठीच)",
-       "rcfilters-filter-userExpLevel-newcomer-label": "नवागत",
-       "rcfilters-filter-userExpLevel-newcomer-description": "१० संपादनांपेक्षा कमी व ४ दिवसांची सक्रियता.",
-       "rcfilters-filter-userExpLevel-learner-label": "शिकाऊ",
+       "rcfilters-filter-user-experience-level-newcomer-label": "नवागत",
+       "rcfilters-filter-user-experience-level-newcomer-description": "१० संपादनांपेक्षा कमी व ४ दिवसांची सक्रियता.",
+       "rcfilters-filter-user-experience-level-learner-label": "शिकाऊ",
        "rcnotefrom": "खाली {{PLURAL:$5|हा बदल आहे|हे बदल आहेत}} <strong>$3, $4</strong>पासून ते(<strong>$1</strong>पर्यंतचे  बदल दाखविले आहेत).",
        "rclistfrom": "$2,$3 पासून सुरुवात करुन, नविन केल्या गेलेले बदल दाखवा.",
        "rcshowhideminor": "छोटे बदल $1",
        "htmlform-user-not-exists": "<strong>$1</strong> अस्तीत्वात नाही.",
        "htmlform-user-not-valid": "<strong>$1</strong> हे वैध सदस्यनाम नाही.",
        "logentry-delete-delete": "$1 {{GENDER:$2|वगळलेले पान}} $3",
+       "logentry-delete-delete_redir": "$1 ने $3 हे पुनर्निर्देशन उपरीलेखन(ओव्हररायटिंग) करून {{GENDER:$2|वगळले}}",
        "logentry-delete-restore": "$1 {{GENDER:$2|पुनर्स्थापित पृष्ठ}} $3",
        "logentry-delete-event": "$1 ने $3 वर{{PLURAL:$5|नोंद-प्रसंग|$5 नोंद प्रसंगांची}} दृष्यता{{GENDER:$2|बदलली}}:$4",
        "logentry-delete-revision": "$1 ने $3 पानावर{{PLURAL:$5|आवृत्ती|$5 आवृत्यांची}} दृष्यता{{GENDER:$2|बदलली}}:$4",
        "logentry-managetags-deactivate": "$1 ने  \"$4\" ही खूणपताका, सदस्यांसाठी व सांगकाम्यांसाठी {{GENDER:$2|अक्रिय केली}}",
        "log-name-tag": "खूणपताका नोंदी",
        "rightsnone": "(काहीही नाही)",
-       "revdelete-summary": "संपादन माहिती",
        "feedback-adding": "आपला पश्चप्रदाय (फिडबॅक)  जोडत आहोत या पानास.......",
        "feedback-back": "परत",
        "feedback-bugcheck": "उत्तम! फक्त एकदा खात्री करा की हा [$1 अगोदरच माहिती असलेला बग] तर नाहीये.",
index 4c5e97d..f3ed5cb 100644 (file)
        "title-invalid-characters": "Chhéng-kiû ê ia̍h-bīn tê-bo̍k hâm hâm bû-hāu ê bûn-jī: \"$1\".",
        "title-invalid-relative": "Tê-bo̍k ū siong-tùi lō͘-kèng. Siong-tùi-sek ê ia̍h-bīn tê-bo̍k (./, ../) sī bû-hāu--ê, in-ūi iōng-chiá ê liû-lám-khì tiāⁿ thàng in bē kàu.",
        "title-invalid-magic-tilde": "Chhéng-kiû ê ia̍h-bīn tê-bo̍k hâm bû-hāu ê mô͘-hoat tilde bûn-jī-lia̍t (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Chhéng-kiû ia̍h-bīn ê tê-bo̍k siuⁿ tn̂g. I ê UTF-8 pian-bé it-tēng bē-tàng tn̂g kòe $1 byte.",
+       "title-invalid-too-long": "Chhéng-kiû ia̍h-bīn ê tê-bo̍k siuⁿ tn̂g. I ê UTF-8 pian-bé it-tēng bē-tàng tn̂g kòe $1 {{PLURAL:$1|byte}}.",
        "title-invalid-leading-colon": "Chhéng-kiû ia̍h-bīn tê-bo̍k thâu hâm bû-hāu ê tōa-kù-tiám (:)",
        "perfcached": "Ē-kha ê chu-liāu tùi lâi--ê, só·-í bô it-tēng sī siōng sin ê. Tī khoài-chhûn-khu siōng chē ē-tàng khǹg{{PLURAL:$1| pit|$1 pit}} chu-liāu.",
        "perfcachedts": "Ē-kha ê chu-liāu tùi lâi--ê, tī $1 keng-sin--koè. Tī khoài-chûn-khu siōng chē ē-tàng khǹg {{PLURAL:$4|pit|$4 pit}} chu-liāu.",
        "viewsource": "Khoàⁿ goân-sú lōe-iông",
        "viewsource-title": "Khoàⁿ \"$1\"--ê goân-sú lōe-iông",
        "actionthrottled": "Tōng-chok hông tóng leh.",
-       "actionthrottledtext": "Ūi-tio̍h thê-hông lah-sap ê chhú-tì,  lí ū hông hān-chè tī té sî-kan lāi chò siuⁿ chē pái chit ê tōng-chok,  taⁿ lí í-keng chhiau-koè hān-chè.\nChhiáⁿ tī kúi hun-cheng hāu chiah koh chhì.",
+       "actionthrottledtext": "Ūi tio̍h thê-hông lām-iōng, lí hông hān-chè tī té sî-kan lāi chò siuⁿ chē pái pún khoán tōng-chok, taⁿ lí í-keng chhiau-koè hān-chè.\nChhiáⁿ tī kúi hun-cheng āu chiah koh chhì.",
        "protectedpagetext": "Chit ia̍h hông só tiâu leh, bē pian-chi̍p tit, mā bē-tàng chò kî-thaⁿ oa̍h-tāng.",
        "viewsourcetext": "Lí ē-sái khoàⁿ ia̍h khó͘-pih chit ia̍h ê goân-sú loē-iông:",
        "viewyourtext": "你會使看<strong>你改的</strong>原始碼,並且khop去這頁:",
        "password-change-forbidden": "Tī chit--ê wiki, lí boē-tàng kái bi̍t-bé.",
        "externaldberror": "這可能是資料庫驗證錯誤,抑是無允准你改外部的口座。",
        "login": "Teng-ji̍p",
+       "login-security": "Khak-jīn lí ê sin-hūn",
        "nav-login-createaccount": "Teng-ji̍p / khui sin kháu-chō",
        "logout": "Teng-chhut",
        "userlogout": "Teng-chhut",
        "createacct-reason": "理由:",
        "createacct-reason-ph": "為啥物你欲開一另外一个口座?",
        "createacct-submit": "Khui lí--ê kháu-chō",
-       "createacct-another-submit": "開另外一个口座",
+       "createacct-another-submit": "Chhòng-kiàn kháu-chō",
+       "createacct-continue-submit": "Kè-sio̍k kháu-chō chhòng-kiàn",
+       "createacct-another-continue-submit": "Kè-sio̍k kháu-chō chhòng-kiàn",
        "createacct-benefit-heading": "{{SITENAME}} sī uī tio̍h chhin-chhiūⁿ lí--ê lâng chiah lâi kiàn-li̍p--ê.",
-       "createacct-benefit-body1": "kái {{PLURAL:$1|pái|pái}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|ia̍h|ia̍h}}",
+       "createacct-benefit-body1": "{{PLURAL:$1|pian-chi̍p}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|ia̍h}}",
        "createacct-benefit-body3": "choè-kīn {{PLURAL:$1|ê lâng ū kòng-hiàn|ê lâng ū kòng-hiàn}}",
        "badretype": "Lí su-ji̍p ê 2-cho· bi̍t-bé bô tùi.",
        "userexists": "Lí phah ê iōng-chiá miâ-chheng í-keng ū lâng iōng. Chhiáⁿ lí iōng pa̍t-ê miâ.",
        "emailnotauthenticated": "Lí ê e-mail chū-chí iáu-bōe khak-jīn ū-hāu, só·-í ē--kha ê e-mail kong-lêng bē-ēng-tit.",
        "noemailprefs": "Tī lí ê siat-piān chí-tēng chi̍t ê tiān-chú-phoe tē-chí thang hō͘ chia ê kong-lêng ē-tàng ēng.",
        "emailconfirmlink": "Chhiáⁿ khak-jīn lí ê e-mail chū-chí ū-hāu",
+       "accountcreated": "Kháu-chō chhòng-kiàn goân-sêng",
+       "createaccount-title": "Ūi {{SITENAME}} khui kháu-chō",
        "loginlanguagelabel": "Gí-giân: $1",
        "pt-login": "Teng-ji̍p",
        "pt-login-button": "Teng-ji̍p",
        "oldpassword": "Kū bi̍t-bé:",
        "newpassword": "Sin bi̍t-bé:",
        "retypenew": "Têng phah sin bi̍t-bé:",
+       "botpasswords-label-appid": "Bot miâ-hō:",
+       "botpasswords-label-create": "Chhòng-kiàn",
+       "botpasswords-label-update": "Kái-sin",
+       "botpasswords-label-cancel": "Chhú-siau",
+       "botpasswords-label-delete": "Thâi-tiāu",
        "resetpass_forbidden": "Bi̍t-bé bē-sái piàn.",
        "resetpass-submit-loggedin": "Kái bi̍t-bé",
        "resetpass-submit-cancel": "Chhú-siau",
        "sig_tip": "Lí ê chhiam-miâ kap sî-kan ìn-á",
        "hr_tip": "Thán-pîⁿ-chōa (hàn leh ēng)",
        "summary": "Khài-iàu:",
-       "subject": "Tê-bo̍k/piau-tê:",
+       "subject": "Tê-bo̍k:",
        "minoredit": "Che sī sió siu-kái",
        "watchthis": "Kàm-sī chit ia̍h",
        "savearticle": "Pó-chûn chit ia̍h",
        "previewnote": "'''Thê-chhéⁿ lí che sī 1 bīn kiám-cha chho͘-phe ēng--ê \"seng-khoàⁿ-ia̍h\", iáu-bōe pó-chûn--khí-lâi!'''",
        "session_fail_preview": "'''Pháiⁿ-sè! Gún chiām-sî bô hoat-tō͘ chhú-lí lí ê pian-chi̍p (goân-in: \"phàng-kiàn sú-iōng kî-kan ê chu-liāu\"). Lô-hoân têng chhì khoàⁿ-māi. Ká-sú iû-goân bô-hāu, ē-sái teng-chhut koh-chài teng-ji̍p hoān-sè tō ē-tit kái-koat.'''",
        "editing": "Siu-kái $1",
+       "creating": "Chhòng-kiàn $1",
        "editingsection": "Pian-chi̍p $1 (section)",
        "editingcomment": "Teh pian-chi̍p $1 (lâu-oē)",
        "editconflict": "Siu-kái sio-chhiong: $1",
        "search-nonefound": "Chhoē m̄ tio̍h",
        "powersearch-legend": "Kiám-sek",
        "preferences": "Siat-tēng",
-       "mypreferences": "Góa ê siat-tēng",
+       "mypreferences": "Siat-tēng",
        "prefs-skin": "Phôe",
        "skin-preview": "Chhì khoàⁿ",
        "datedefault": "Chhìn-chhái",
        "emailsent": "E-mail sàng chhut-khì ah",
        "emailsenttext": "Lí ê e-mail í-keng sàng chhut-khì ah.",
        "watchlist": "Góa ê kàm-sī-toaⁿ",
-       "mywatchlist": "Góa ê kàm-sī-toaⁿ",
+       "mywatchlist": "Kam-sī-toaⁿ",
        "watchlistfor2": "予$1 $2",
        "nowatchlist": "Lí ê kàm-sī-toaⁿ bô pòaⁿ hāng.",
        "watchnologin": "Bô teng-ji̍p",
        "blanknamespace": "(Chú-ia̍h)",
        "contributions": "{{GENDER:$1|Iōng-chiá}} ê kòng-hiàn",
        "contributions-title": "Iōng-chiá $1--ê kòng-hiàn",
-       "mycontris": "Góa ê kòng-hiàn",
+       "mycontris": "Kòng-hiàn",
        "anoncontribs": "Kòng-hiān",
        "nocontribs": "Chhōe bô tiâu-kiāⁿ ū-tùi ê hāng-bo̍k.",
        "uctop": "(siōng téng ê)",
        "sp-contributions-newbies": "Kan-taⁿ hián-sī sin kháu-chō ê kòng-kiàn",
        "sp-contributions-newbies-sub": "Sin lâi--ê",
        "sp-contributions-deleted": "Hō͘ lâng thâi tiāu ê kòng-hiàn",
+       "sp-contributions-uploads": "Ap-ló͘",
        "sp-contributions-talk": "thó-lūn",
        "sp-contributions-search": "Chhoē chhut kòng-kiàn",
        "sp-contributions-username": "IP Chū-chí a̍h iōng-chiá miâ:",
index 0f7cdb2..cff7a06 100644 (file)
        "page_first": "første",
        "page_last": "siste",
        "histlegend": "Valg av diff: merk i radioboksene de revisjonene du ønsker å sammenligne og trykk enter eller knappen nederst på siden.<br />\nForklaring: '''({{int:cur}})''' = forskjell fra nåværende revisjon, '''({{int:last}})''' = forskjell fra foregående revisjon, '''{{int:minoreditletter}}''' = mindre endring.",
-       "history-fieldset-title": "Bla i historikken",
-       "history-show-deleted": "Kun slettede",
+       "history-fieldset-title": "Søk etter revisjoner",
+       "history-show-deleted": "Kun slettede revisjoner",
        "histfirst": "eldste",
        "histlast": "nyeste",
        "historysize": "({{PLURAL:$1|1 byte|$1 byte}})",
        "prefs-help-prefershttps": "Denne preferansen vil virke etter neste innlogging.",
        "prefswarning-warning": "Du har gjort endringer i dine innstillinger som ikke er lagret ennå.\nDersom du forlater denne siden utenk å klikke på \"$1\" blir ikke innstillingene dine oppdatert.",
        "prefs-tabs-navigation-hint": "Tips: Du kan bruke venstre- og høyrepiltastene for å navigere mellom fanene i fanelisten",
-       "userrights": "Bruker&shy;rettighets&shy;kontroll",
+       "userrights": "Bruker&shy;rettigheter",
        "userrights-lookup-user": "Velg en bruker",
        "userrights-user-editname": "Fyll inn et brukernavn:",
        "editusergroup": "Last brukergrupper",
        "rcfilters-invalid-filter": "Ugyldig filter",
        "rcfilters-empty-filter": "Ingen aktive filtre. Alle bidrag vises.",
        "rcfilters-filterlist-title": "Filtre",
+       "rcfilters-filterlist-whatsthis": "Hva er dette?",
        "rcfilters-filterlist-feedbacklink": "Gi tilbakemelding på de nye (beta)filtrene",
        "rcfilters-highlightbutton-title": "Marker resultater",
        "rcfilters-highlightmenu-title": "Velg en farge",
+       "rcfilters-highlightmenu-help": "Velg en farge for å merke denne egenskapen",
        "rcfilters-filterlist-noresults": "Ingen filtre funnet",
+       "rcfilters-noresults-conflict": "Ingen resultater funnet fordi søkekriteriene konflikterer",
+       "rcfilters-state-message-subset": "Dette filteret har ingen effekt fordi resultatene dens inkluderes i følgende, bredere {{PLURAL:$2|filter|filtre}} (prøv å merke for å skille det ut): $1",
+       "rcfilters-state-message-fullcoverage": "Å velge alle filtre i en gruppe er det samme som å velge ingen, så dette filteret har ingen effekt. Gruppa inkluderer: $1",
        "rcfilters-filtergroup-registration": "Brukerregistrering",
        "rcfilters-filter-registered-label": "Registrerte",
        "rcfilters-filter-registered-description": "Innloggede brukere.",
        "rcfilters-filter-unregistered-label": "Uregistrerte",
        "rcfilters-filter-unregistered-description": "Brukere som ikke er logget inn.",
+       "rcfilters-filter-unregistered-conflicts-user-experience-level": "Dette filteret konflikterer med følgende {{PLURAL:$2|erfaringsfilter|erfaringsfiltre}}, som finner kun registrerte brukere: $1",
        "rcfilters-filtergroup-authorship": "Redigeringens forfatter",
        "rcfilters-filter-editsbyself-label": "Dine egne redigeringer",
        "rcfilters-filter-editsbyself-description": "Redigeringer gjort av deg.",
        "rcfilters-filter-editsbyother-label": "Redigeringer av andre",
        "rcfilters-filter-editsbyother-description": "Redigeringer som er gjort av andre brukere enn deg.",
        "rcfilters-filtergroup-userExpLevel": "Erfaringsnivå (kun for registrerte brukere)",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "Erfaringsfiltre finner kun registrerte brukere, så dette filteret konflikterer med filteret «Uregistrerte».",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "Filteret «Uregistrerte» konflikterer med ett eller flere erfaringsfiltre, som kun finner registrerte brukere. De konflikterende filtrene merkes i området for aktive filtre ovenfor.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Nykommere",
        "rcfilters-filter-user-experience-level-newcomer-description": "Færre enn 10 redigeringer og 4 dagers aktivitet.",
        "rcfilters-filter-user-experience-level-learner-label": "Nybegynnere",
        "rcfilters-filter-bots-description": "Redigeringer gjort med automatiske verktøy.",
        "rcfilters-filter-humans-label": "Menneske (ikke bot)",
        "rcfilters-filter-humans-description": "Redigeringer gjort av menneskelige brukere.",
+       "rcfilters-filtergroup-reviewstatus": "Gjennomgangsstatus",
+       "rcfilters-filter-patrolled-label": "Patruljert",
+       "rcfilters-filter-patrolled-description": "Redigeringer merket som patruljert.",
+       "rcfilters-filter-unpatrolled-label": "Upatruljert",
+       "rcfilters-filter-unpatrolled-description": "Redigeringer som ikke er merket som patruljert.",
        "rcfilters-filtergroup-significance": "Betydning",
        "rcfilters-filter-minor-label": "Mindre endringer",
        "rcfilters-filter-minor-description": "Redigeringer merket som mindre av brukeren.",
        "rcfilters-filter-categorization-description": "Sporer sider som legges til i eller fjernes fra kategorier.",
        "rcfilters-filter-logactions-label": "Loggførte handlinger",
        "rcfilters-filter-logactions-description": "Administrative handlinger, kontoopprettelser, sideslettinger, opplastinger ...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Filteret for «Mindre endringer» konflikterer med ett eller flere endringstypefiltre, fordi visse endringstyper ikke kan merkes som «mindre». De konflikterende fultrene merkes i området for aktive filtre ovenfor.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Visse endringstyper kan ikke merkes som «mindre», så dette filteret konflikterer med følgende endringstypefiltre: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Dette endringstypefilteret konflikterer med filteret for «Mindre endringer». Visse endringstyper kan ikke merkes som «mindre».",
        "rcnotefrom": "Nedenfor er vist {{PLURAL:$5|endringen|endringene}} som er gjort siden <strong>$3, $4</strong> (frem til <strong>$1</strong>).",
        "rclistfrom": "Vis nye endringer fra og med $3 $2",
        "rcshowhideminor": "$1 mindre endringer",
index a8906cc..379d2f3 100644 (file)
        "page_first": "początek",
        "page_last": "koniec",
        "histlegend": "Wybór porównania – zaznacz kropeczkami dwie wersje do porównania i wciśnij enter lub przycisk ''Porównaj wybrane wersje''.<br />\nLegenda: (bież.) – pokaż zmiany od tej wersji do bieżącej,\n(poprz.) – pokaż zmiany od wersji poprzedzającej, m – mała (drobna) zmiana",
-       "history-fieldset-title": "Przeglądaj historię",
+       "history-fieldset-title": "Szukaj wersji",
        "history-show-deleted": "Tylko usunięte edycje",
        "histfirst": "od najstarszych",
        "histlast": "od najświeższych",
        "rcfilters-highlightmenu-title": "Wybierz kolor",
        "rcfilters-highlightmenu-help": "Wybierz kolor, aby podświetlić tę właściwość",
        "rcfilters-filterlist-noresults": "Nie znaleziono filtrów",
+       "rcfilters-noresults-conflict": "Nie znaleziono wyników z powodu konfliktu kryteriów wyszukiwania",
        "rcfilters-filtergroup-registration": "Rejestracja użytkownika",
        "rcfilters-filter-registered-label": "Zarejestrowani",
        "rcfilters-filter-registered-description": "Zalogowani edytorzy.",
        "rcfilters-filter-editsbyself-description": "Edycje dokonane przez Ciebie.",
        "rcfilters-filter-editsbyother-label": "Edycje inne niż Twoje",
        "rcfilters-filter-editsbyother-description": "Edycje wykonane przez innych (nie Twoje).",
-       "rcfilters-filtergroup-userExpLevel": "Poziom doświadczenia (tylko dla zarejestrowanych użytkowników)",
-       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "Filtr \"Niezarejestrowani\" koliduje z jednym lub więcej filtrów z filtrów poziomu doświadczenia, które służą do wyszukiwania wkładu tylko zarejestrowanych użytkowników. Kolidujące filtry zostały oznaczone jako nieaktywne.",
+       "rcfilters-filtergroup-userExpLevel": "Poziom doświadczenia (tylko o zarejestrowanych użytkownikach)",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "Filtr \"Niezarejestrowani\" koliduje z jednym lub więcej filtrów z filtrów poziomu doświadczenia, które służą do wyszukiwania wkładu tylko zarejestrowanych użytkowników. Kolidujące filtry zostały odpowiednio oznaczone na pasku Aktywnych filtrów.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Początkujący",
        "rcfilters-filter-user-experience-level-newcomer-description": "Mniej niż 10 edycji i 4 dni aktywności.",
        "rcfilters-filter-user-experience-level-learner-label": "Uczący się",
index f123189..1e05084 100644 (file)
        "rcfilters-filter-categorization-description": "Description for the filter for showing edits adding or removing pages to categories.",
        "rcfilters-filter-logactions-label": "Label for the filter for showing logged actions.",
        "rcfilters-filter-logactions-description": "Description for the filter for showing logged actions.",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "The \"Minor edits\" filter is conflicting with one or more Type of Change filters, because certain types of change cannot be designated as \"minor.\" The conflicting filters are marked in the Active Filters area, above.\n\n\"Type of Change\" is {{msg-mw|Rcfilters-filtergroup-changetype}}.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Tooltip shown when hovering over the Minor edits tag, when a Type of Change filter is also selected.\n\n\"Minor edits\" is {{msg-mw|rcfilters-filter-minor-label}}.\n\n\"Type of change\" is {{msg-mw|rcfilters-filtergroup-changetype}}.\n\nThis indicates that no results will be shown.  Parameters:\n* $1 - Comma-separated string of selected Type of Change filters, e.g. \"Category, Logged Actions\"\n* $2 - Count of selected User Experience Level filters, for PLURAL",
+       "rcfilters-typeofchange-conflicts-hideminor": "Tooltip shown when hovering over a Type of change filter tag, when the Minor edits filter is also selected.\n\n\"Minor edits\" is {{msg-mw|rcfilters-filter-minor-label}}.\n\n\"Type of change\" is {{msg-mw|rcfilters-filtergroup-changetype}}.\n\nThis indicates that no results will be shown.",
        "rcnotefrom": "This message is displayed at [[Special:RecentChanges]] when viewing recentchanges from some specific time.\n\nThe corresponding message is {{msg-mw|Rclistfrom}}.\n\nParameters:\n* $1 - the maximum number of changes that are displayed\n* $2 - (Optional) a date and time\n* $3 - a date\n* $4 - a time\n* $5 - Number of changes are displayed, for use with PLURAL",
        "rclistfrom": "Used on [[Special:RecentChanges]]. Parameters:\n* $1 - (Currently not use) date and time. The date and the time adds to the rclistfrom description.\n* $2 - time. The time adds to the rclistfrom link description (with split of date and time).\n* $3 - date. The date adds to the rclistfrom link description (with split of date and time).\n\nThe corresponding message is {{msg-mw|Rcnotefrom}}.",
        "rcshowhideminor": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|rcshowhideminor-show}} or {{msg-mw|rcshowhideminor-hide}}\n{{Identical|Minor edit}}",
index d06ed4c..c36a330 100644 (file)
        "rcfilters-filter-categorization-description": "Zapisi o straneh, ki so bila dodana ali odstranjena iz kategorij.",
        "rcfilters-filter-logactions-label": "Zabeležena dejanja",
        "rcfilters-filter-logactions-description": "Administrativna dejanja, ustvarjanja računov, izbrisi strani, nalaganja ...",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Filter »Manjša urejanja« je v sporu z enim ali več filtri Vrsta spremembe, ker nekaterih vrst urejanj ni možno označiti kot »manjša«. Filtri v sporu so označeni v območju Dejavni filtri zgoraj.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Nekaterih vrst sprememb ni možno označiti kot »manjše«, zato je ta filter v sporu z naslednjimi filtri Vrsta spremembe: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Ta filter Vrsta spremembe je v sporu s filtrom »Manjše urejanje«. Nekaterih vrst sprememb ni možno označiti kot »manjše«.",
        "rcnotefrom": "{{PLURAL:$5|Navedena je sprememba|Navedeni sta spremembi|Navedene so spremembe}} od <strong>$3 $4</strong> dalje (prikazujem jih do <strong>$1</strong>).",
        "rclistfrom": "Prikaži spremembe od $3 $2 naprej",
        "rcshowhideminor": "$1 manjša urejanja",
index 8785c67..3e11e53 100644 (file)
        "userlogin-signwithsecure": "Paké sambungan aman",
        "yourdomainname": "Domain anjeun",
        "password-change-forbidden": "Anjeun teu bisa ngarobah kecap sandi dina ieu wiki.",
-       "externaldberror": "Aya kasalahan dina pangkalan data oténtikasi luar, atawa anjeun mémang teu diwenangkeun pikeun ngaropéa rekening luar anjeun.",
+       "externaldberror": "Aya kasalahan dina pangkalan data oténtikasi luar, atawa anjeun mémang teu diwenangkeun pikeun ngaropéa akun luar anjeun.",
        "login": "Asup log",
        "nav-login-createaccount": "Nyieun akun/asup log",
        "logout": "Kaluar log",
        "userexists": "Sandiasma nu diasupkeun geus aya nu maké.\nMangga pilih sandiasma nu séjén.",
        "loginerror": "Kasalahan asup log",
        "createacct-error": "Nyieun akun éror",
-       "createaccounterror": "Teu bisa nyieun rekening: $1",
-       "nocookiesnew": "Rekening pamaké geus dijieun, tapi anjeun can asup log. {{SITENAME}} maké ''cookies'' pikeun ngasupkeun log pamaké. Anjeun boga ''cookies'' nu ditumpurkeun. Mangga fungsikeun, teras asup log migunakeun ngaran pamaké sarta sandi nu anyar.",
+       "createaccounterror": "Teu bisa nyieun akun: $1",
+       "nocookiesnew": "Akun pamaké geus dijieun, tapi anjeun can asup log. {{SITENAME}} maké ''cookies'' pikeun ngalog pamaké. Anjeun boga ''cookies'' nu ditumpurkeun. Mangga fungsikeun, teras asup log migunakeun sandiasma sarta kecap sandi anu anyar.",
        "nocookieslogin": "{{SITENAME}} migunakeun ''cookies'' pikeun ngasupkeun pamaké kana log. Anjeun boga ''cookies'' nu ditumpurkeun. Mangga pungsikeun sarta cobian deui.",
        "nocookiesfornew": "Akun pamaké teu bisa dijieun, kusabab sumberna teu bisa dipastikeun.\nPariksa kukisna bisi tumpur, terus cobaan muat ulang ieu kaca.",
        "noname": "Anjeun teu nuliskeun ngaran pamaké nu sah.",
        "eauthentsent": "Surélék konfirmasi geus dikirim ka alamat bieu.\nMéméh aya surat séjén asup ka akunna, anjeun kudu nuturkeun pituduh dina surélékna pikeun mastikeun yén akun éta téh bener boga anjeun.",
        "throttled-mailpassword": "Surélék pikeun ngarobah kecap sandi geus dikirim {{PLURAL:$1|jam|$1 jam}} kaliwat.\nNgarah hanteu disalahgunakeun, ngan hiji surélék anu bakal dikirim saban {{PLURAL:$1|jam|$1 jam}}.",
        "mailerror": "Kasalahan ngirim surat: $1",
-       "acct_creation_throttle_hit": "Punten,pamaké alamat IP anjeun geus nyieun {{PLURAL:$1|1 rekening|$1 rekening}} dina sapoé ieu. mangrupa jumlah nu di idinan dina sapoé.\nanjeun teu bisa nyieun deui samentara waktu.",
+       "acct_creation_throttle_hit": "Anu ngaranjang ka ieu wiki maké alamat IP anjeun geus nyieun {{PLURAL:$1|1 akun|$1 akun}} salila $2, mangrupa jumlah anu diidinan dina sapoé.\nKu kituna, anu ngaranjang maké ieu alamat IP samentawis mah moal bisa nyieun akun deui heula.",
        "emailauthenticated": "Alamat surélék anjeun geus dikonfirmasi $2 tabuh $3.",
        "emailnotauthenticated": "Alamat surélék anjeun can dikonfirmasi.\nMoal aya surélék nu bakal dikirim pikeun fitur-fitur di handap ieu.",
        "noemailprefs": "Teu aya alamat surélék, fitur di handap moal bisa jalan.",
        "invalidemailaddress": "Alamat surélék teu bisa ditarima sabab formatna salah.\nMangga lebetkeun alamat nu formatna bener atawa kosongkeun baé.",
        "cannotchangeemail": "Alamat surat-é akun hanteu bisa dirobah di ieu wiki.",
        "emaildisabled": "Ieu loka teu bisa ngirim surélék.",
-       "accountcreated": "Rekening geus dijieun.",
+       "accountcreated": "Akun geus dijieun",
        "accountcreatedtext": "Akun pamaké [[{{ns:Pamaké}}:$1|$1]] ([[{{ns:Obrolan pamaké}}:$1|obrolan]]) geus dijieun.",
-       "createaccount-title": "Nyieun rekening keur {{SITENAME}}",
+       "createaccount-title": "Nyieun akun keur {{SITENAME}}",
        "createaccount-text": "Aya nu nyieun akun pikeun alamat surélék anjeun di {{SITENAME}} ($4) maké sandiasma \"$2\" kalawan kecap sandi \"$3\". Anjeun kudu asup log sarta ngaganti kecap sandina.\n\nMun ieu akun dijieun alatan éror, ulah diwaro.",
        "login-throttled": "Anjeun geus loba teuing nyobaan asup log.\nTungguan $1, laju cobaan deui.",
        "login-abort-generic": "Login gagal - Dibolaykeun",
        "changepassword": "Robah sandi",
        "resetpass_announce": "Pikeun nganggeuskeun asup log, anjeun kudu nyieun kecap sandi anyar.",
        "resetpass_text": "<!-- Tambahkeun téks di dieu -->",
-       "resetpass_header": "Ganti sandi rekening",
+       "resetpass_header": "Ganti sandi akun",
        "oldpassword": "Sandi heubeul",
        "newpassword": "Sandi anyar:",
        "retypenew": "Ketik ulang sandi",
        "changepassword-throttled": "Anjeun geus loba teuing nyobaan asup log.\nTungguan $1 méméh nyobaan deui.",
        "resetpass_forbidden": "Sandi henteu bisa dirobah",
        "resetpass-no-info": "Anjeun kudu asup log pkeun bisa muka ieu kaca sacara langsung.",
-       "resetpass-submit-loggedin": "Ganti kecap sandi rekening",
+       "resetpass-submit-loggedin": "Ganti kecap sandi akun",
        "resetpass-submit-cancel": "Bolay",
        "resetpass-wrong-oldpass": "Salah sandi.\nBisa jadi anjeun geus ngaganti sandina atawa ménta sandi saheulaanan anu anyar.",
        "resetpass-recycled": "Mangga ganti kecap sandi anjeun ku nu anyar.",
        "noarticletext-nopermission": "Kiwari can aya téks dina ieu kaca.\nAnjeun bisa [[Special:Search/{{PAGENAME}}|nyusud judul ieu kaca]] dina kaca séjén,atawa <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} nyusud log nu tumali]</span>, tapi teu wenang pikeun nyieun ieu kaca.",
        "missing-revision": "Révisi #$1 kaca \"{{FULLPAGENAME}}\" teu aya.\n\nKajadian ieu biasana kusabab nuturkeun tutumbu jujutan kaca anu geus dihapus.\nWincikanana bisa ditempo di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log hapusan].",
        "userpage-userdoesnotexist": "Akun pamaké \"<nowiki>$1</nowiki>\" tacan kadaptar. Mangga riksa lamun anjeun hoyong ngadamel/ngédit ieu kaca.",
-       "userpage-userdoesnotexist-view": "Rekening pamaké \"$1\" teu aya dina daptar.",
+       "userpage-userdoesnotexist-view": "Akun pamaké \"$1\" teu aya dina daptar.",
        "blocked-notice-logextract": "Ieu pamaké keur dipeungpeuk.\nPikeun rujukan, éntri log panungtung dipidangkeun di handap:",
        "clearyourcache": "<strong>Catet:</strong> Sanggeus nyimpen, anjeun kudu narabas singgahan panyungsi anjeun pikeun nempo parobahanana.\n* <strong>Firefox/Safari:</strong> Tahan <em>Shift</em> bari ngaklik <em>Reload</em>, atawa pencét boh <em>Ctrl-F5</em> atawa <em>Ctrl-R</em> (<em>⌘-R</em> dina Mac)\n* <strong>Google Chrome:</strong> Pencét <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> dina Mac)\n* <strong>Internet Explorer:</strong> Tahan <em>Ctrl</em> bari ngaklik <em>Refresh</em>, atawa pencét <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Kosongkeun singgahan dina <em>Tools → Preferences</em>",
        "usercssyoucanpreview": "Tip:''' Paké tombol \"{{int:showpreview}}\" pikeun nyobaan CSS anyar anjeun méméh nyimpen.",
        "right-edit": "Ngédit kaca",
        "right-createpage": "Nyieun kaca anyar (nu lain kaca obrolan)",
        "right-createtalk": "Nyieun kaca obrolan",
-       "right-createaccount": "Nyieun rekening anyar",
+       "right-createaccount": "Nyieun akun anyar",
        "right-minoredit": "Nandaan éditan minor",
        "right-move": "Mindahkeun kaca",
        "right-move-subpages": "Pindahkeun kaca katut sakabéh subkacana",
        "action-edit": "édit kaca ieu",
        "action-createpage": "mitembeyan kaca anyar",
        "action-createtalk": "mitembeyan kaca obrolan",
-       "action-createaccount": "nyieun rekening pamaké ieu",
+       "action-createaccount": "nyieun akun pamaké ieu",
        "action-history": "tempo jujutan ieu kaca",
        "action-minoredit": "nandaan ieu éditan salaku minor",
        "action-move": "mindahkeun ieu kaca",
        "month": "Ti bulan (jeung saméméhna):",
        "year": "Ti taun (jeung saméméhna):",
        "sp-contributions-newbies": "Témbongkeun kontribusi ti akun anyar wungkul",
-       "sp-contributions-newbies-sub": "Pikeun rekening anyar",
+       "sp-contributions-newbies-sub": "Pikeun akun anyar",
        "sp-contributions-blocklog": "log peungpeuk",
        "sp-contributions-deleted": "kontribusi nu dihapus",
        "sp-contributions-uploads": "unggahan",
        "ipbexpiry": "Kadaluarsa",
        "ipbreason": "Alesan:",
        "ipb-hardblock": "Nyegah pamaké anu asup log pikeun ngédit ti ieu alamat IP",
-       "ipbcreateaccount": "Tong bisa nyieun rekening",
+       "ipbcreateaccount": "Ulah bisa nyieun akun",
        "ipbemailban": "Henteu kaci pamaké ngirimkeun surélék",
        "ipbenableautoblock": "Peungpeuk sacara otomatis alamat IP anu panungtungan dipaké ku pamaké sarta sakabéh alamat IP anu kungsi dipaké.",
        "ipbsubmit": "Peungpeuk pamaké ieu",
        "expiringblock": "kadaluwarsa $1 jam $2",
        "anononlyblock": "ngan nu teu daptar",
        "noautoblockblock": "Otopeungpeuk ditumpurkeun",
-       "createaccountblock": "nyieun rekening dipeungpeuk",
+       "createaccountblock": "nyieun akun dipeungpeuk",
        "emailblock": "surélek di peungpeuk",
        "blocklist-nousertalk": "teu bisa ngarobah kaca obrolan sorangan",
        "ipblocklist-empty": "Daptar peungpeuk kosong.",
        "proxyblocker": "Pameungpeuk proxy",
        "proxyblockreason": "Alamat IP anjeun dipeungpeuk sabab mangrupa proxy muka. Mangga tepungan ''Internet service provider'' atanapi ''tech support'' anjeun, béjakeun masalah serius ieu.",
        "sorbsreason": "Alamat IP anjeun kadaptar salaku ''open proxy'' dina DNSBL anu dipaké ku {{SITENAME}}.",
-       "sorbs_create_account_reason": "Alamat IP anjeun kadaptar salaku ''open proxy'' dina DNSBL. Anjeun teu bisa nyieun rekening",
+       "sorbs_create_account_reason": "Alamat IP anjeun kadaptar salaku ''open proxy'' dina DNSBL. Anjeun teu bisa nyieun akun",
        "ipbblocked": "Anjeun teu bisa meungpeuk atawa muka peungpeuk séjén kontributor ku sabab anjeun sorangan keur dipeungpeuk",
        "lockdb": "Konci pangkalan data",
        "unlockdb": "Buka konci pangkalan data",
        "confirmemail": "Konfirmasi alamat surélék",
        "confirmemail_noemail": "Alamat surélék anu didaptarkeun dina [[Special:Preferences|préferénsi pamaké]] anjeun teu sah.",
        "confirmemail_text": "Ieu {{SITENAME}} butuh sangkan anjeun mastikeun alamat surélék saméméh migunakeun fitur surélék.\nAktipkeun tombol di handap pikeun ngirimkeun surat konfirmasi ka alamat anjeun. Suratna ngandung tumbu nu ngandung sandina; muatkeun tumbuna kana panyungsi anjeun pikeun ngonfirmasi yén alamat surélék anjeun sah.",
-       "confirmemail_pending": "Sandi konfirmasi geus dikirimkeun ka alamat surélék anjeun; mun kakara nyieun rekening, mangga antos sababaraha menit saméméh mundut sandi anyar.",
+       "confirmemail_pending": "Kecap sandi konfirmasi geus dikirimkeun ka alamat surélék anjeun; mun anyar nyieun akun, mangga antos sababaraha menit saméméh mundut kecap sandi anyar.",
        "confirmemail_send": "Kirimkeun surat konfirmasi sandi",
        "confirmemail_sent": "Surélék konfirmasi geus dikirim.",
        "confirmemail_oncreate": "Sandi konfirmasi geus dikirim ka alamat surélék anjeun. Éta sandi dipaké pikeun ngajalankeun fitur-fitur nu maké surélék di ieu wiki.",
index 2565c0e..0a467da 100644 (file)
        "rcfilters-filter-categorization-description": "从分类中添加或移除页面的记录。",
        "rcfilters-filter-logactions-label": "记录的操作",
        "rcfilters-filter-logactions-description": "管理操作、账户创建、页面删除、上传....",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "“小编辑”过滤器与一个或多个更改类型过滤器冲突,因为其中某种更改类型不可指定为“小编辑”。冲突过滤器已在上方活跃过滤器中被标记。",
+       "rcfilters-hideminor-conflicts-typeofchange": "某种更改类型不可指定为“小编辑”,因此该过滤器与以下更改类型过滤器相冲突:$1",
+       "rcfilters-typeofchange-conflicts-hideminor": "这种更改类型过滤器与“小编辑”过滤器相冲突。某种更改类型不可指定为“小编辑”。",
        "rcnotefrom": "下面{{PLURAL:$5|是}}<strong>$3 $4</strong>之后的更改(最多显示<strong>$1</strong>个)。",
        "rclistfrom": "显示$3 $2之后的新更改",
        "rcshowhideminor": "$1小编辑",
index 352700e..b0219bf 100644 (file)
@@ -87,7 +87,7 @@
                ]
        },
        "tog-underline": "底線標示連結:",
-       "tog-hideminor": "隱藏近期變更中的修訂",
+       "tog-hideminor": "隱藏近期變更中的次要修訂",
        "tog-hidepatrolled": "隱藏近期變更中巡查過的編輯",
        "tog-newpageshidepatrolled": "隱藏新頁面清單中巡查過的頁面",
        "tog-hidecategorization": "隱藏頁面分類",
@@ -95,7 +95,7 @@
        "tog-usenewrc": "依近期變更與監視清單的頁面分類顯示變更",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
-       "tog-editondblclick": "é\9b\99æ\93\8aæ»\91é¼ 編輯頁面",
+       "tog-editondblclick": "é»\9eé\81¸å\85©æ¬¡ä»¥編輯頁面",
        "tog-editsectiononrightclick": "開啟滑鼠右鍵點選章節標題編輯",
        "tog-watchcreations": "將我建立的頁面和上傳的檔案加入監視清單",
        "tog-watchdefault": "將我編輯的頁面和檔案加入監視清單",
        "tog-watchdeletion": "將我刪除的頁面和檔案加入監視清單",
        "tog-watchuploads": "加入我上傳的新檔案至我的監視清單",
        "tog-watchrollback": "將我曾經還原的頁面新增至監視清單",
-       "tog-minordefault": "預設標記所有的編輯為修訂",
+       "tog-minordefault": "預設標記所有的編輯為次要修訂",
        "tog-previewontop": "顯示預覽於編輯框上方",
        "tog-previewonfirst": "第一次編輯時顯示預覽",
        "tog-enotifwatchlistpages": "當我的監視清單中的頁面或檔案有變更時,傳送電子郵件通知我",
        "tog-enotifusertalkpages": "當我的對話頁面有變更時,傳送電子郵件通知我",
-       "tog-enotifminoredits": "當頁面與檔案有修訂時,傳送電子郵件通知我",
+       "tog-enotifminoredits": "當頁面與檔案有次要修訂時,傳送電子郵件通知我",
        "tog-enotifrevealaddr": "在通知郵件中顯示我的電子郵件地址",
        "tog-shownumberswatching": "顯示監視使用者數量",
        "tog-oldsig": "您現有的簽名:",
        "tog-forceeditsummary": "未填寫編輯摘要時提示我",
        "tog-watchlisthideown": "隱藏監視清單中我自己的編輯",
        "tog-watchlisthidebots": "隱藏監視清單中機器人的編輯",
-       "tog-watchlisthideminor": "隱藏監視清單中的修訂",
+       "tog-watchlisthideminor": "隱藏監視清單中的次要修訂",
        "tog-watchlisthideliu": "隱藏監視清單中已登入使用者的編輯",
        "tog-watchlistreloadautomatically": "查詢條件變更時自動重新讀取監視清單 (需要使用 JavaScript)",
        "tog-watchlisthideanons": "隱藏監視清單中匿名使用者的編輯",
        "tog-watchlisthidepatrolled": "隱藏監視清單中已巡查的編輯",
        "tog-watchlisthidecategorization": "隱藏頁面分類",
-       "tog-ccmeonemails": "我給他人寄出郵件時,也寄出一份副本到我的電子郵件信箱",
+       "tog-ccmeonemails": "我寄出郵件給其他使用者時,也寄給我一份副本",
        "tog-diffonly": "比對差異時下方不顯示頁面內容",
        "tog-showhiddencats": "顯示隱藏分類",
        "tog-norollbackdiff": "執行還原後略過差異比對",
        "period-am": "AM",
        "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|分類|$1 個分類}}",
-       "category_header": "分類「$1」中的頁面",
+       "category_header": "分類 \"$1\" 中的頁面",
        "subcategories": "子分類",
        "category-media-header": "分類 \"$1\" 中的媒體",
        "category-empty": "<em>此分類目前未包含頁面或媒體。</em>",
        "hr_tip": "水平線 (少用)",
        "summary": "摘要:",
        "subject": "主旨:",
-       "minoredit": "這是一個修訂",
+       "minoredit": "這是一個次要修訂",
        "watchthis": "監視此頁面",
        "savearticle": "儲存頁面",
        "savechanges": "儲存變更",
        "selfredirect": "<strong>警告:</strong> 您正建立連結至自己的重新導向。\n您可能指定錯要重新導向的目標頁面或者編輯錯頁面。\n若您再點選 \"{{int:savearticle}}\" 一次,將會繼續建立重新導向。",
        "missingcommenttext": "請在下方輸入評論。",
        "missingcommentheader": "<strong>提醒:</strong>您未填寫此評論的主旨。\n若您再點選 \"{{int:savearticle}}\" 一次,將略過主旨/標題直接儲存您的評論。",
-       "summary-preview": "預覽摘要:",
-       "subject-preview": "主旨預覽:",
+       "summary-preview": "編輯摘要預覽:",
+       "subject-preview": "預覽主旨:",
        "previewerrortext": "嘗試預覽您的變更時發生錯誤。",
        "blockedtitle": "使用者已被封鎖",
        "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
        "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
-       "systemblockedtext": "您的使用者名稱或IP位址已被MediaWiki自動封禁。原因如下:\n\n:<em>$2</em>\n\n* 開始時間:$8\n* 結束時間:$6\n* 被封禁使用者:$7\n\n您目前的IP位址是$3。請在作出任何查詢時包含上述所有詳情。",
+       "systemblockedtext": "您的使用者名稱或 IP 位址已被 MediaWiki 自動封鎖,原因如下:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 被封鎖的使用者:$7\n\n您目前的 IP 位址為 $3。\n請在做詢問時附上以上資訊。",
        "blockednoreason": "未說明原因",
        "whitelistedittext": "請先 $1 才可編輯頁面。",
        "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件地址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件地址。",
        "last": "前筆",
        "page_first": "第一頁",
        "page_last": "最後頁",
-       "histlegend": "比對選擇的版本差異:選擇要比對修訂版本的單選方塊並點選底部的按鈕進行比對。<br />\n符號說明:<strong>({{int:cur}})</strong> = 與最新的修訂版本比對,<strong>({{int:last}})</strong> = 與前一筆修訂版本比對,<strong>{{int:minoreditletter}}</strong> = 修訂。",
-       "history-fieldset-title": "瀏覽歷史",
+       "histlegend": "比對選擇的版本差異:選擇要比對修訂版本的單選方塊並點選底部的按鈕進行比對。<br />\n符號說明:<strong>({{int:cur}})</strong> = 與最新的修訂版本比對,<strong>({{int:last}})</strong> = 與前一筆修訂版本比對,<strong>{{int:minoreditletter}}</strong> = 次要修訂。",
+       "history-fieldset-title": "搜尋修訂",
        "history-show-deleted": "只顯示已刪除的修訂",
        "histfirst": "最舊",
        "histlast": "最新",
        "stub-threshold": "短頁面連結格式門檻值 ($1):",
        "stub-threshold-sample-link": "樣本",
        "stub-threshold-disabled": "已停用",
-       "recentchangesdays": "最近變更顯示的天數:",
+       "recentchangesdays": "近期變更顯示的天數:",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
-       "prefs-help-recentchangescount": "這包含最近更改、頁面歷史以及日誌。",
+       "prefs-help-recentchangescount": "這包含近期變更、頁面歷史以及日誌。",
        "prefs-help-watchlist-token2": "訂閱您的監視清單所需的密鑰。\n任何人只要知道密鑰就能夠讀取您的監視清單,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
        "savedprefs": "已儲存您的偏好設定。",
        "savedrights": "已儲存 {{GENDER:$1|$1}} 的使用者權限。",
        "youremail": "Email:",
        "username": "{{GENDER:$1|使用者名稱}}:",
        "prefs-memberingroups": "{{GENDER:$2|所屬}}{{PLURAL:$1|群組}}:",
+       "group-membership-link-with-expiry": "$1 (直到 $2)",
        "prefs-registration": "註冊時間:",
        "yourrealname": "真實姓名:",
        "yourlanguage": "語言:",
        "prefs-help-prefershttps": "此偏好設定將於您下次登入時生效。",
        "prefswarning-warning": "您對您的偏好設定所做的變更尚未儲存。\n若您未點選 \"$1\" 離開此頁面,將不會更新您的偏好設定。",
        "prefs-tabs-navigation-hint": "提示:您可使用左、右方向鍵切換頁籤。",
-       "userrights": "使用者權限管理",
+       "userrights": "使用者權限",
        "userrights-lookup-user": "選擇用戶",
        "userrights-user-editname": "請輸入使用者名稱:",
        "editusergroup": "載入使用者群組",
        "saveusergroups": "儲存{{GENDER:$1|使用者}}群組",
        "userrights-groupsmember": "所屬群組:",
        "userrights-groupsmember-auto": "所屬隱含群組:",
-       "userrights-groups-help": "您可以更改此使用者所屬的群組:\n* 已勾選的核選方塊代表該使用者屬於該群組。\n* 未勾選的核選方塊代表該使用者不屬於該群組。\n* 有 * 號標示代表一旦加入該群組後便不能移除,反之亦然。",
+       "userrights-groups-help": "您可以更改此使用者所屬的群組:\n* 已勾選的核選方塊代表該使用者屬於該群組。\n* 未勾選的核選方塊代表該使用者不屬於該群組。\n* 有 * 號標示代表一旦加入該群組後便不能移除,反之亦然。\n* 有 # 號標示代表您只能延後此群組的期限,您無法將其提前。",
        "userrights-reason": "原因:",
        "userrights-no-interwiki": "您沒有權限去編輯其他 Wiki 上的使用者權限。",
        "userrights-nodatabase": "資料庫 $1 不存在或不在本地主機的。",
        "userrights-changeable-col": "您可變更的群組",
        "userrights-unchangeable-col": "您不可變更的群組",
+       "userrights-expiry-current": "期限至 $1",
+       "userrights-expiry-none": "沒有期限",
        "userrights-expiry": "期限:",
+       "userrights-expiry-existing": "現有的期限:$3, $2",
        "userrights-expiry-othertime": "其他時間:",
+       "userrights-expiry-options": "1 天:1 day,1 週:1 week,1 個月:1 month,3 個月:3 months,6 個月:6 months,1 年:1 year",
+       "userrights-invalid-expiry": "群組 \"$1\" 的期限無效。",
+       "userrights-expiry-in-past": "群組 \"$1\" 的期限已過。",
+       "userrights-cannot-shorten-expiry": "您無法提前群組 \"$1\" 的期限。只有擁有新增與移除此群組權限的使用者可以將期限提前。",
        "userrights-conflict": "使用者權限變更發生衝突!請檢閱並確認你的變更。",
        "group": "群組:",
        "group-user": "使用者",
        "right-importupload": "由檔案上傳匯入頁面",
        "right-patrol": "標示其他人的編輯爲已巡查",
        "right-autopatrol": "將自己的編輯自動標示為已巡查",
-       "right-patrolmarks": "檢視最近變更的巡查標記",
+       "right-patrolmarks": "檢視近期變更的巡查標記",
        "right-unwatchedpages": "檢視未監視的頁面",
        "right-mergehistory": "合併頁面歷史",
        "right-userrights": "編輯所有使用者的權限",
        "nchanges": "$1 次變更",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|自上次拜訪}}已有 $1",
        "enhancedrc-history": "歷史",
-       "recentchanges": "最近變更",
+       "recentchanges": "近期變更",
        "recentchanges-legend": "最近變更選項",
-       "recentchanges-summary": "追蹤 Wiki 中此頁面的最近更改。",
+       "recentchanges-summary": "追蹤 Wiki 中此頁面的近期變更。",
        "recentchanges-noresult": "於指定時間內沒有符合條件的變更。",
-       "recentchanges-feed-description": "追蹤 Wiki 中此摘要的最近變更。",
+       "recentchanges-feed-description": "追蹤 Wiki 中此摘要的近期變更。",
        "recentchanges-label-newpage": "該編輯建立了新頁面",
        "recentchanges-label-minor": "該編輯是一個小修訂",
        "recentchanges-label-bot": "該編輯由機器人執行",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (請參考[[Special:NewPages|新頁面]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "顯示",
-       "rcfilters-activefilters": "現用過濾規則",
-       "rcfilters-search-placeholder": "過濾最近變更(瀏覽或開始輸入)",
-       "rcfilters-invalid-filter": "過濾規則無效",
-       "rcfilters-filterlist-title": "篩選器",
-       "rcfilters-filterlist-feedbacklink": "在新(測試版)過濾器中提供反饋",
+       "rcfilters-activefilters": "使用中的過濾條件",
+       "rcfilters-restore-default-filters": "還原預設過濾條件",
+       "rcfilters-clear-all-filters": "清除所有過濾條件",
+       "rcfilters-search-placeholder": "過濾條件近期變更 (瀏覽或開始輸入)",
+       "rcfilters-invalid-filter": "無效的過濾條件",
+       "rcfilters-empty-filter": "沒有使用中的過濾條件。已顯示所有的貢獻。",
+       "rcfilters-filterlist-title": "過濾條件",
+       "rcfilters-filterlist-whatsthis": "這是什麼?",
+       "rcfilters-filterlist-feedbacklink": "提供新 (測試版) 過濾條件的意見回饋",
+       "rcfilters-highlightbutton-title": "明顯標示結果",
        "rcfilters-highlightmenu-title": "選擇顏色",
-       "rcfilters-filterlist-noresults": "找不到過濾規則",
+       "rcfilters-highlightmenu-help": "選擇要明顯標示此屬性的色彩",
+       "rcfilters-filterlist-noresults": "查無過濾條件",
+       "rcfilters-noresults-conflict": "因搜尋條件衝突,查無結果",
+       "rcfilters-state-message-subset": "此過濾條件沒有效果,因其結果包含了以下範圍更廣的{{PLURAL:$2|過濾條件|過濾條件}}其中之一 (嘗試以明顯標示來區別它):$1",
+       "rcfilters-state-message-fullcoverage": "選擇在群組中的所有過濾條件與沒選擇時相同,代表此過濾條件沒有效果。群組包含了:$1",
+       "rcfilters-filtergroup-registration": "使用者註冊",
        "rcfilters-filter-registered-label": "已註冊",
+       "rcfilters-filter-registered-description": "已登入的編輯者。",
        "rcfilters-filter-unregistered-label": "未註冊",
-       "rcfilters-filtergroup-authorship": "編輯者",
+       "rcfilters-filter-unregistered-description": "尚未登入的編輯者。",
+       "rcfilters-filter-unregistered-conflicts-user-experience-level": "此過濾條件與以下經歷{{PLURAL:$2|過濾條件|過濾條件}}衝突,因其只會{{PLURAL:$2|尋找|尋找}}已註冊的使用者:$1",
+       "rcfilters-filtergroup-authorship": "編輯作者身份",
        "rcfilters-filter-editsbyself-label": "您自己的編輯",
        "rcfilters-filter-editsbyself-description": "您的編輯。",
        "rcfilters-filter-editsbyother-label": "其他人的編輯",
        "rcfilters-filter-editsbyother-description": "由其他使用者而非您所作的編輯。",
        "rcfilters-filtergroup-userExpLevel": "經驗等級 (僅限已註冊的使用者)",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered": "經歷過濾條件只會尋找已註冊的使用者,所以此過濾條件會與 \"未註冊\" 的過濾條件衝突。",
+       "rcfilters-filtergroup-user-experience-level-conflicts-unregistered-global": "\"未註冊\" 的過濾條件與一個或多個經歷過濾條件衝突,該過濾條件只會尋找已註冊使用者。衝突的過濾條件已在上方使用的過濾條件區域中標示。",
        "rcfilters-filter-user-experience-level-newcomer-label": "新手",
        "rcfilters-filter-user-experience-level-newcomer-description": "編輯數低於 10 次,活躍低於 4 天。",
        "rcfilters-filter-user-experience-level-learner-label": "初學者",
        "rcfilters-filter-user-experience-level-learner-description": "活躍的天數以及編輯數比「新手」多,但比「有經驗的使用者」少。",
        "rcfilters-filter-user-experience-level-experienced-label": "有經驗的使用者",
        "rcfilters-filter-user-experience-level-experienced-description": "活躍超過 30 天,編輯超過 500 次。",
+       "rcfilters-filtergroup-automated": "自動化貢獻",
        "rcfilters-filter-bots-label": "機器人",
-       "rcfilters-filter-humans-label": "人類(非機器人)",
+       "rcfilters-filter-bots-description": "由自動化工具所做的編輯。",
+       "rcfilters-filter-humans-label": "人類 (非機器人)",
        "rcfilters-filter-humans-description": "由人類編者做出的編輯",
-       "rcfilters-filter-minor-label": "小修改",
-       "rcfilters-filter-major-label": "非小編輯",
-       "rcfilters-filter-major-description": "未標記小修改的編輯。",
+       "rcfilters-filtergroup-reviewstatus": "審查狀態",
+       "rcfilters-filter-patrolled-label": "已巡查",
+       "rcfilters-filter-patrolled-description": "標記為己巡查的編輯。",
+       "rcfilters-filter-unpatrolled-label": "未巡查",
+       "rcfilters-filter-unpatrolled-description": "標記為未巡查的編輯。",
+       "rcfilters-filtergroup-significance": "重要性",
+       "rcfilters-filter-minor-label": "次要編輯",
+       "rcfilters-filter-minor-description": "作者已標示為次要的編輯。",
+       "rcfilters-filter-major-label": "非次要編輯",
+       "rcfilters-filter-major-description": "未標記為次要的編輯。",
+       "rcfilters-filtergroup-changetype": "變更類型",
        "rcfilters-filter-pageedits-label": "頁面編輯",
-       "rcfilters-filter-newpages-label": "頁面創建",
-       "rcfilters-filter-newpages-description": "創立新頁面的編緝。",
+       "rcfilters-filter-pageedits-description": "對 Wiki 內容、討論、分類說明所做的編輯...",
+       "rcfilters-filter-newpages-label": "頁面建立",
+       "rcfilters-filter-newpages-description": "建立新頁面的編輯。",
        "rcfilters-filter-categorization-label": "分類變更",
+       "rcfilters-filter-categorization-description": "已加入到分類或從分類中移除的頁面記錄。",
+       "rcfilters-filter-logactions-label": "已記錄的動作",
+       "rcfilters-filter-logactions-description": "管理動作、帳號建立、頁面刪除、上傳....",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "\"次要編輯\" 過濾條件與一個或多個變更類型過濾條件衝突,因為某些變更類型無法指定為 \"次要\"。衝突的過濾條件已在上方使用的過濾條件區域中標示。",
+       "rcfilters-hideminor-conflicts-typeofchange": "某些變更類型無法指定為 \"次要\",所以此過濾條件與以下變更類型的過濾條件衝突:$1",
+       "rcfilters-typeofchange-conflicts-hideminor": "此變更類型過濾條件與 \"次要編輯\" 過濾條件衝突,某些變更類型無法指定為 \"次要\"。",
        "rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
        "rclistfrom": "顯示自 $3 $2 以來的新變更",
        "rcshowhideminor": "$1 小修訂",
        "uncategorizedcategories": "未分類的分類",
        "uncategorizedimages": "未分類的檔案",
        "uncategorizedtemplates": "待分類模板",
+       "uncategorized-categories-exceptionlist": "# 包含了不應在 Special:UncategorizedCategories 被提及的分類清單,一個分類一行,以 \"*\" 開始,以其他字元 (包含空白) 做為行首將會被忽略。使用 \"#\" 代表註解。",
        "unusedcategories": "未使用的分類",
        "unusedimages": "未使用的檔案",
        "wantedcategories": "需要的分類",
        "apisandbox-sending-request": "傳送 API 請求中...",
        "apisandbox-loading-results": "接收 API 結果中...",
        "apisandbox-results-error": "讀取 API 查詢回應時發生錯誤:$1。",
+       "apisandbox-request-selectformat-label": "顯示請求資料為:",
+       "apisandbox-request-format-url-label": "URL 查詢字串",
        "apisandbox-request-url-label": "請求 URL:",
+       "apisandbox-request-json-label": "請求 JSON:",
        "apisandbox-request-time": "請求時間:{{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "更正密鑰並重新送出",
        "apisandbox-results-fixtoken-fail": "取得 \"$1\" 密鑰失敗。",
        "emailccsubject": "您寄給 $1 的訊息副本:$2",
        "emailsent": "已寄出電子郵件",
        "emailsenttext": "已寄出您的電子郵件訊息。",
-       "emailuserfooter": "這封電子郵件是由$1透過{{SITENAME}}的「{{int:emailuser}}」功能{{GENDER:$1|寄給}}{{GENDER:$1|$2}}的。{{GENDER:$2|您的}}郵件將直接寄往{{GENDER:$1|原發件人}},{{GENDER:$1|他|她|他}}將能夠看到您的電子郵件地址。",
+       "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"{{int:emailuser}}\" 功能{{GENDER:$1|寄給}}{{GENDER:$1|$2}}的。若{{GENDER:$2|您}}回覆此電子郵件,{{GENDER:$2|您的}}郵件將直接寄往{{GENDER:$1|原發件人}},{{GENDER:$1|他|她|他}}將能夠看到{{GENDER:$2|您的}}電子郵件地址。",
        "usermessage-summary": "留訊息至系統。",
        "usermessage-editor": "系統訊息",
        "watchlist": "監視清單",
        "sp-contributions-username": "IP 位址或使用者名稱:",
        "sp-contributions-toponly": "只顯示最新修訂的編輯",
        "sp-contributions-newonly": "只顯示建立頁面的編輯",
-       "sp-contributions-hideminor": "隱藏小修訂",
+       "sp-contributions-hideminor": "隱藏次要編輯",
        "sp-contributions-submit": "搜尋",
        "whatlinkshere": "連結至此的頁面",
        "whatlinkshere-title": "連結至 \"$1\" 的頁面",
        "tooltip-n-mainpage-description": "前往首頁",
        "tooltip-n-portal": "關於本專案、您可以做什麼、哪裡可以找到您需要的事物",
        "tooltip-n-currentevents": "於新聞事件中找到相關背景資料",
-       "tooltip-n-recentchanges": "列出此 Wiki 中的最近變更清單",
+       "tooltip-n-recentchanges": "列出此 Wiki 中的近期變更清單",
        "tooltip-n-randompage": "隨機進入一個頁面",
        "tooltip-n-help": "尋求協助的地方",
        "tooltip-t-whatlinkshere": "列出所有連結此頁面的頁面",
-       "tooltip-t-recentchangeslinked": "此頁面連結至其他頁面的最近變更",
+       "tooltip-t-recentchangeslinked": "此頁面連結至其他頁面的近期變更",
        "tooltip-feed-rss": "此頁面的 RSS 來源",
        "tooltip-feed-atom": "此頁面的 Atom 來源",
        "tooltip-t-contributions": "{{GENDER:$1|此使用者}}的貢獻清單",
        "specialpages-group-maintenance": "維護報表",
        "specialpages-group-other": "其它特殊頁面",
        "specialpages-group-login": "登入 / 建立帳號",
-       "specialpages-group-changes": "最近變更與日誌",
+       "specialpages-group-changes": "近期變更與日誌",
        "specialpages-group-media": "媒體上傳與報表",
        "specialpages-group-users": "使用者與權限",
        "specialpages-group-highuse": "常用頁面",
        "logentry-tag-update-revision": "$1 {{GENDER:$2|已更新}}標籤於頁面 $3 的修訂 $4 ({{PLURAL:$7|加入}} $6; {{PLURAL:$9|移除}} $8)。",
        "logentry-tag-update-logentry": "$1 {{GENDER:$2|已更新}}標籤於頁面 $3 的日誌項目 $5 ({{PLURAL:$7|加入}} $6; {{PLURAL:$9|移除}} $8)。",
        "rightsnone": "(無)",
+       "rightslogentry-temporary-group": "$1 (臨時,直到 $2)",
        "feedback-adding": "正在新增意見回饋至頁面...",
        "feedback-back": "返回",
        "feedback-bugcheck": "很好! 檢查一下您的意見是不是已經被列為 [$1 已知問題]。",
index b9fcb51..631386a 100644 (file)
@@ -308,11 +308,6 @@ return [
                'styles' => 'resources/lib/qunitjs/qunit.css',
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'jquery.qunit.completenessTest' => [
-               'scripts' => 'resources/src/jquery/jquery.qunit.completenessTest.js',
-               'dependencies' => 'jquery.qunit',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
        'jquery.spinner' => [
                'scripts' => 'resources/src/jquery/jquery.spinner.js',
                'styles' => 'resources/src/jquery/jquery.spinner.css',
@@ -1786,6 +1781,12 @@ return [
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.HighlightColorPickerWidget.less',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterItemHighlightButton.less',
                ],
+               'skinStyles' => [
+                       'monobook' => [
+                               'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.Overlay.monobook.less',
+                               'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.CapsuleItemWidget.monobook.less',
+                       ],
+               ],
                'messages' => [
                        'rcfilters-activefilters',
                        'rcfilters-restore-default-filters',
@@ -1809,6 +1810,7 @@ return [
                'dependencies' => [
                        'oojs-ui',
                        'mediawiki.language',
+                       'mediawiki.user',
                        'mediawiki.rcfilters.filters.dm',
                        'oojs-ui.styles.icons-moderation',
                        'oojs-ui.styles.icons-editing-core',
diff --git a/resources/src/jquery/jquery.qunit.completenessTest.js b/resources/src/jquery/jquery.qunit.completenessTest.js
deleted file mode 100644 (file)
index 0aaa4ff..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-/**
- * jQuery QUnit CompletenessTest 0.4
- *
- * Tests the completeness of test suites for object oriented javascript
- * libraries. Written to be used in environments with jQuery and QUnit.
- * Requires jQuery 1.7.2 or higher.
- *
- * Built for and tested with:
- * - Chrome 19
- * - Firefox 4
- * - Safari 5
- *
- * @author Timo Tijhof, 2011-2012
- */
-/* eslint-env qunit */
-( function ( mw, $ ) {
-       'use strict';
-
-       var util,
-               hasOwn = Object.prototype.hasOwnProperty,
-               log = ( window.console && window.console.log ) ?
-                       function () { return window.console.log.apply( window.console, arguments ); } :
-                       function () {};
-
-       // Simplified version of a few jQuery methods, except that they don't
-       // call other jQuery methods. Required to be able to run the CompletenessTest
-       // on jQuery itself as well.
-       util = {
-               keys: Object.keys || function ( object ) {
-                       var key, keys = [];
-                       for ( key in object ) {
-                               if ( hasOwn.call( object, key ) ) {
-                                       keys.push( key );
-                               }
-                       }
-                       return keys;
-               },
-               each: function ( object, callback ) {
-                       var name;
-                       for ( name in object ) {
-                               if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
-                                       break;
-                               }
-                       }
-               },
-               // $.type and $.isEmptyObject are safe as is, they don't call
-               // other $.* methods. Still need to be derefenced into `util`
-               // since the CompletenessTest will overload them with spies.
-               type: $.type,
-               isEmptyObject: $.isEmptyObject
-       };
-
-       /**
-        * CompletenessTest
-        *
-        * @constructor
-        * @example
-        *  var myTester = new CompletenessTest( myLib );
-        * @param {Object} masterVariable The root variable that contains all object
-        *  members. CompletenessTest will recursively traverse objects and keep track
-        *  of all methods.
-        * @param {Function} [ignoreFn] Optionally pass a function to filter out certain
-        *  methods. Example: You may want to filter out instances of jQuery or some
-        *  other constructor. Otherwise "missingTests" will include all methods that
-        *  were not called from that instance.
-        */
-       function CompletenessTest( masterVariable, ignoreFn ) {
-               var warn,
-                       that = this;
-
-               // Keep track in these objects. Keyed by strings with the
-               // method names (ie. 'my.foo', 'my.bar', etc.) values are boolean true.
-               this.injectionTracker = {};
-               this.methodCallTracker = {};
-               this.missingTests = {};
-
-               this.ignoreFn = ignoreFn === undefined ? function () { return false; } : ignoreFn;
-
-               // Lazy limit in case something weird happends (like recurse (part of) ourself).
-               this.lazyLimit = 2000;
-               this.lazyCounter = 0;
-
-               // Bind begin and end to QUnit.
-               QUnit.begin( function () {
-                       // Suppress warnings (e.g. deprecation notices for accessing the properties)
-                       warn = mw.log.warn;
-                       mw.log.warn = $.noop;
-
-                       that.walkTheObject( masterVariable, null, masterVariable, [] );
-                       log( 'CompletenessTest/walkTheObject', that );
-
-                       // Restore warnings
-                       mw.log.warn = warn;
-                       warn = undefined;
-               } );
-
-               QUnit.done( function () {
-                       var toolbar, testResults, cntTotal, cntCalled, cntMissing;
-
-                       that.populateMissingTests();
-                       log( 'CompletenessTest/populateMissingTests', that );
-
-                       cntTotal = util.keys( that.injectionTracker ).length;
-                       cntCalled = util.keys( that.methodCallTracker ).length;
-                       cntMissing = util.keys( that.missingTests ).length;
-
-                       function makeTestResults( blob, title, style ) {
-                               var elOutputWrapper, elTitle, elContainer, elList, elFoot;
-
-                               elTitle = document.createElement( 'strong' );
-                               elTitle.textContent = title || 'Values';
-
-                               elList = document.createElement( 'ul' );
-                               util.each( blob, function ( key ) {
-                                       var elItem = document.createElement( 'li' );
-                                       elItem.textContent = key;
-                                       elList.appendChild( elItem );
-                               } );
-
-                               elFoot = document.createElement( 'p' );
-                               elFoot.innerHTML = '<em>&mdash; CompletenessTest</em>';
-
-                               elContainer = document.createElement( 'div' );
-                               elContainer.appendChild( elTitle );
-                               elContainer.appendChild( elList );
-                               elContainer.appendChild( elFoot );
-
-                               elOutputWrapper = document.getElementById( 'qunit-completenesstest' );
-                               if ( !elOutputWrapper ) {
-                                       elOutputWrapper = document.createElement( 'div' );
-                                       elOutputWrapper.id = 'qunit-completenesstest';
-                               }
-                               elOutputWrapper.appendChild( elContainer );
-
-                               util.each( style, function ( key, value ) {
-                                       elOutputWrapper.style[ key ] = value;
-                               } );
-                               return elOutputWrapper;
-                       }
-
-                       if ( cntMissing === 0 ) {
-                               // Good
-                               testResults = makeTestResults(
-                                       {},
-                                       'Detected calls to ' + cntCalled + '/' + cntTotal + ' methods. No missing tests!',
-                                       {
-                                               backgroundColor: '#D2E0E6',
-                                               color: '#366097',
-                                               paddingTop: '1em',
-                                               paddingRight: '1em',
-                                               paddingBottom: '1em',
-                                               paddingLeft: '1em'
-                                       }
-                               );
-                       } else {
-                               // Bad
-                               testResults = makeTestResults(
-                                       that.missingTests,
-                                       'Detected calls to ' + cntCalled + '/' + cntTotal + ' methods. ' + cntMissing + ' methods not covered:',
-                                       {
-                                               backgroundColor: '#EE5757',
-                                               color: 'black',
-                                               paddingTop: '1em',
-                                               paddingRight: '1em',
-                                               paddingBottom: '1em',
-                                               paddingLeft: '1em'
-                                       }
-                               );
-                       }
-
-                       toolbar = document.getElementById( 'qunit-testrunner-toolbar' );
-                       if ( toolbar ) {
-                               toolbar.insertBefore( testResults, toolbar.firstChild );
-                       }
-               } );
-
-               return this;
-       }
-
-       /* Public methods */
-       CompletenessTest.fn = CompletenessTest.prototype = {
-
-               /**
-                * CompletenessTest.fn.walkTheObject
-                *
-                * This function recursively walks through the given object, calling itself as it goes.
-                * Depending on the action it either injects our listener into the methods, or
-                * reads from our tracker and records which methods have not been called by the test suite.
-                *
-                * @param {Mixed} currObj The variable to check (initially an object,
-                *  further down it could be anything).
-                * @param {string|null} currName Name of the given object member (Initially this is null).
-                * @param {Object} masterVariable Throughout our interation, always keep track of the master/root.
-                *  Initially this is the same as currVar.
-                * @param {Array} parentPathArray Array of names that indicate our breadcrumb path starting at
-                *  masterVariable. Not including currName.
-                */
-               walkTheObject: function ( currObj, currName, masterVariable, parentPathArray ) {
-                       var key, currVal, type,
-                               ct = this,
-                               currPathArray = parentPathArray;
-
-                       if ( currName ) {
-                               currPathArray.push( currName );
-                               currVal = currObj[ currName ];
-                       } else {
-                               currName = '(root)';
-                               currVal = currObj;
-                       }
-
-                       type = util.type( currVal );
-
-                       // Hard ignores
-                       if ( this.ignoreFn( currVal, this, currPathArray ) ) {
-                               return;
-                       }
-
-                       // Handle the lazy limit
-                       this.lazyCounter++;
-                       if ( this.lazyCounter > this.lazyLimit ) {
-                               log( 'CompletenessTest.fn.walkTheObject> Limit reached: ' + this.lazyCounter, currPathArray );
-                               return;
-                       }
-
-                       // Functions
-                       if ( type === 'function' ) {
-                               // Don't put a spy in constructor functions as it messes with
-                               // instanceof etc.
-                               if ( !currVal.prototype || util.isEmptyObject( currVal.prototype ) ) {
-                                       this.injectionTracker[ currPathArray.join( '.' ) ] = true;
-                                       this.injectCheck( currObj, currName, function () {
-                                               ct.methodCallTracker[ currPathArray.join( '.' ) ] = true;
-                                       } );
-                               }
-                       }
-
-                       // Recursively. After all, this is the *completeness* test
-                       // This also traverses static properties and the prototype of a constructor
-                       if ( type === 'object' || type === 'function' ) {
-                               for ( key in currVal ) {
-                                       if ( hasOwn.call( currVal, key ) ) {
-                                               this.walkTheObject( currVal, key, masterVariable, currPathArray.slice() );
-                                       }
-                               }
-                       }
-               },
-
-               populateMissingTests: function () {
-                       var ct = this;
-                       util.each( ct.injectionTracker, function ( key ) {
-                               ct.hasTest( key );
-                       } );
-               },
-
-               /**
-                * CompletenessTest.fn.hasTest
-                *
-                * Checks if the given method name (ie. 'my.foo.bar')
-                * was called during the test suite (as far as the tracker knows).
-                * If not it adds it to missingTests.
-                *
-                * @param {string} fnName
-                * @return {boolean}
-                */
-               hasTest: function ( fnName ) {
-                       if ( !( fnName in this.methodCallTracker ) ) {
-                               this.missingTests[ fnName ] = true;
-                               return false;
-                       }
-                       return true;
-               },
-
-               /**
-                * CompletenessTest.fn.injectCheck
-                *
-                * Injects a function (such as a spy that updates methodCallTracker when
-                * it's called) inside another function.
-                *
-                * @param {Object} obj The object into which `injectFn` will be inserted
-                * @param {Array} key The key by which `injectFn` will be known in `obj`; if this already
-                *   exists, a wrapper will first call `injectFn` and then the original `obj[key]` function.
-                * @param {Function} injectFn The function to insert
-                */
-               injectCheck: function ( obj, key, injectFn ) {
-                       var spy,
-                               val = obj[ key ];
-
-                       spy = function () {
-                               injectFn();
-                               return val.apply( this, arguments );
-                       };
-
-                       // Make the spy inherit from the original so that its static methods are also
-                       // visible in the spy (e.g. when we inject a check into mw.log, mw.log.warn
-                       // must remain accessible).
-                       spy.__proto__ = val;
-
-                       // Objects are by reference, members (unless objects) are not.
-                       obj[ key ] = spy;
-               }
-       };
-
-       /* Expose */
-       window.CompletenessTest = CompletenessTest;
-
-}( mediaWiki, jQuery ) );
index e034826..14eabe2 100644 (file)
                        'event.ChangesListHighlights',
                        {
                                action: action,
-                               filters: filters
+                               filters: filters,
+                               userId: mw.user.getId()
                        }
                );
        };
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.CapsuleItemWidget.monobook.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.CapsuleItemWidget.monobook.less
new file mode 100644 (file)
index 0000000..04e5efe
--- /dev/null
@@ -0,0 +1,9 @@
+.mw-rcfilters-ui-capsuleItemWidget {
+       .oo-ui-buttonElement {
+               // Override the vertical align for the close button
+               // for some unknown reason, this rule, in combination
+               // with the negative margin-top rule, pushes all the
+               // close buttons up above the capsule item.
+               vertical-align: baseline;
+       }
+}
index 29c3ed1..402f0ad 100644 (file)
@@ -4,6 +4,8 @@
        &-results {
                width: 35em;
                margin: 5em auto;
+
+               &-noresult,
                &-conflict {
                        font-weight: bold;
                        margin-bottom: 0.5em;
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.Overlay.monobook.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.Overlay.monobook.less
new file mode 100644 (file)
index 0000000..fae2b32
--- /dev/null
@@ -0,0 +1,3 @@
+.mw-rcfilters-ui-overlay {
+       font-size: 1.28em; /* 0.8em / x-small */
+}
index a72af8e..728bb38 100644 (file)
                        )
                        .toggleClass(
                                'mw-rcfilters-ui-capsuleItemWidget-conflicted',
-                               this.model.isConflicted()
+                               this.model.isSelected() && this.model.isConflicted()
                        );
        };
 
index ec2ebe0..c7e6961 100644 (file)
                                $message
                                        .append(
                                                $( '<div>' )
+                                                       .addClass( 'mw-rcfilters-ui-changesListWrapperWidget-results-noresult' )
                                                        .text( mw.message( 'recentchanges-noresult' ).text() )
                                        );
                        }
index b3d1613..4ac86c9 100644 (file)
@@ -90,7 +90,7 @@ figure[typeof*='mw:Image'] {
                /* In mw-core the font-size is duplicated, 94% in thumbiner
                 * and again 94% in thumbcaption. 88% for font size of the
                 * caption results in the same behavior. */
-               font-size: 88%;
+               font-size: 88.4%;
                line-height: 1.4em;
                text-align: left;
 
@@ -98,7 +98,7 @@ figure[typeof*='mw:Image'] {
                border-top: 0;
 
                /* taken from .thumbcaption, plus .thumbinner */
-               padding: 1px 5px 5px;
+               padding: 0 6px 6px 6px;
                background-color: #f9f9f9;
 
                table {
index c82b9cb..282a2ee 100644 (file)
@@ -16,8 +16,7 @@
                parserDefaults = {
                        magic: {
                                PAGENAME: mw.config.get( 'wgPageName' ),
-                               PAGENAMEE: mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
-                               SITENAME: mw.config.get( 'wgSiteName' )
+                               PAGENAMEE: mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) )
                        },
                        // Whitelist for allowed HTML elements in wikitext.
                        // Self-closing tags are not currently supported.
         * parsers, pass the relevant options to mw.jqueryMsg.parser.
         *
         * @private
-        * @param {Object} data
+        * @param {Object} data New data to extend parser defaults with
+        * @param {boolean} [deep=false] Whether the extend is done recursively (deep)
         */
-       mw.jqueryMsg.setParserDefaults = function ( data ) {
-               $.extend( parserDefaults, data );
+       mw.jqueryMsg.setParserDefaults = function ( data, deep ) {
+               if ( deep ) {
+                       $.extend( true, parserDefaults, data );
+               } else {
+                       $.extend( parserDefaults, data );
+               }
        };
 
        /**
index 1d48d08..2206fbd 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
 /**
+ * @group Database
  * @group GlobalFunctions
  */
 class GlobalTest extends MediaWikiTestCase {
index 50f851c..59441ce 100644 (file)
@@ -4,6 +4,7 @@
  *
  * @author Matthew Flaschen
  *
+ * @group Database
  * @group Output
  *
  * @todo factor tests in this class into providers and test methods
index 9060dfb..5c0a5d9 100644 (file)
@@ -2,6 +2,7 @@
 
 /**
  * @group API
+ * @group Database
  * @group medium
  *
  * @covers ApiMain
index 5ea7b1d..8a69b5c 100644 (file)
@@ -20,6 +20,9 @@
  * @file
  */
 
+/**
+ * @group Database
+ */
 class UserPasswordPolicyTest extends MediaWikiTestCase {
 
        protected $policies = [
index e3ea139..3e9c567 100644 (file)
@@ -1,5 +1,8 @@
 <?php
 
+/**
+ * @group Database
+ */
 class RCFeedIntegrationTest extends MediaWikiTestCase {
        protected function setUp() {
                parent::setUp();
index a332528..4048ffe 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+use MediaWiki\MediaWikiServices;
+
 class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
 
        /**
@@ -214,6 +216,50 @@ class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
                $module = TestingAccessWrapper::newFromObject( $module );
                $this->assertEquals( $expected, $module->getTitleInfo( $context ), 'Title info' );
        }
+
+       /**
+        * @covers ResourceLoaderWikiModule::getContent
+        */
+       public function testGetContentForRedirects() {
+               // Set up context and module object
+               $context = $this->getResourceLoaderContext( [], new EmptyResourceLoader );
+               $module = $this->getMockBuilder( 'ResourceLoaderWikiModule' )
+                       ->setMethods( [ 'getPages', 'getContentObj' ] )
+                       ->getMock();
+               $module->expects( $this->any() )
+                       ->method( 'getPages' )
+                       ->will( $this->returnValue( [
+                               'MediaWiki:Redirect.js' => [ 'type' => 'script' ]
+                       ] ) );
+               $module->expects( $this->any() )
+                       ->method( 'getContentObj' )
+                       ->will( $this->returnCallback( function ( Title $title ) {
+                               if ( $title->getPrefixedText() === 'MediaWiki:Redirect.js' ) {
+                                       $handler = new JavaScriptContentHandler();
+                                       return $handler->makeRedirectContent(
+                                               Title::makeTitle( NS_MEDIAWIKI, 'Target.js' )
+                                       );
+                               } elseif ( $title->getPrefixedText() === 'MediaWiki:Target.js' ) {
+                                       return new JavaScriptContent( 'target;' );
+                               } else {
+                                       return null;
+                               }
+                       } ) );
+
+               // Mock away Title's db queries with LinkCache
+               MediaWikiServices::getInstance()->getLinkCache()->addGoodLinkObj(
+                       1, // id
+                       new TitleValue( NS_MEDIAWIKI, 'Redirect.js' ),
+                       1, // len
+                       1 // redirect
+               );
+
+               $this->assertEquals(
+                       "/*\nMediaWiki:Redirect.js\n*/\ntarget;\n",
+                       $module->getScript( $context ),
+                       'Redirect resolved by getContent'
+               );
+       }
 }
 
 class TestResourceLoaderWikiModule extends ResourceLoaderWikiModule {
index cef5c15..b0118af 100644 (file)
@@ -1,8 +1,8 @@
-/* global CompletenessTest, sinon */
+/* global sinon */
 ( function ( $, mw, QUnit ) {
        'use strict';
 
-       var mwTestIgnore, addons;
+       var addons;
 
        /**
         * Add bogus to url to prevent IE crazy caching
                value: 'true'
        } );
 
-       /**
-        * CompletenessTest
-        *
-        * Adds toggle checkbox to header
-        */
-       QUnit.config.urlConfig.push( {
-               id: 'completenesstest',
-               label: 'Run CompletenessTest',
-               tooltip: 'Run the completeness test'
-       } );
-
        /**
         * SinonJS
         *
                };
        }() );
 
-       // Initiate when enabled
-       if ( QUnit.urlParams.completenesstest ) {
-
-               // Return true to ignore
-               mwTestIgnore = function ( val, tester ) {
-
-                       // Don't record methods of the properties of constructors,
-                       // to avoid getting into a loop (prototype.constructor.prototype..).
-                       // Since we're therefor skipping any injection for
-                       // "new mw.Foo()", manually set it to true here.
-                       if ( val instanceof mw.Map ) {
-                               tester.methodCallTracker.Map = true;
-                               return true;
-                       }
-                       if ( val instanceof mw.Title ) {
-                               tester.methodCallTracker.Title = true;
-                               return true;
-                       }
-
-                       // Don't record methods of the properties of a jQuery object
-                       if ( val instanceof $ ) {
-                               return true;
-                       }
-
-                       // Don't iterate over the module registry (the 'script' references would
-                       // be listed as untested methods otherwise)
-                       if ( val === mw.loader.moduleRegistry ) {
-                               return true;
-                       }
-
-                       return false;
-               };
-
-               // eslint-disable-next-line no-new
-               new CompletenessTest( mw, mwTestIgnore );
-       }
-
        /**
         * Reset mw.config and others to a fresh copy of the live config for each test(),
         * and restore it back to the live one afterwards.
index 3b549bd..3c77a00 100644 (file)
                );
        } );
 
+       QUnit.test( 'setParserDefaults', function ( assert ) {
+               mw.jqueryMsg.setParserDefaults( {
+                       magic: {
+                               FOO: 'foo',
+                               BAR: 'bar'
+                       }
+               } );
+
+               assert.deepEqual(
+                       mw.jqueryMsg.getParserDefaults().magic,
+                       {
+                               FOO: 'foo',
+                               BAR: 'bar'
+                       },
+                       'setParserDefaults is shallow by default'
+               );
+
+               mw.jqueryMsg.setParserDefaults(
+                       {
+                               magic: {
+                                       BAZ: 'baz'
+                               }
+                       },
+                       true
+               );
+
+               assert.deepEqual(
+                       mw.jqueryMsg.getParserDefaults().magic,
+                       {
+                               FOO: 'foo',
+                               BAR: 'bar',
+                               BAZ: 'baz'
+                       },
+                       'setParserDefaults is deep if requested'
+               );
+       } );
 }( mediaWiki, jQuery ) );